@@ -102,21 +102,17 @@ const maxSecretSize = 500 * 1024 // 500KB
102102// It reads up to twice the maximum size of the secret ([maxSecretSize]),
103103// just in case swarm's limit changes; this is only a safeguard to prevent
104104// reading arbitrary files into memory.
105- func readSecretData (in io.Reader , fileName string ) (data []byte , retErr error ) {
106- if fileName != "" {
107- defer func () {
108- if retErr != nil {
109- retErr = fmt .Errorf ("error reading from %s: %w" , fileName , retErr )
110- } else if len (data ) == 0 {
111- retErr = fmt .Errorf ("error reading from %s: data is empty" , fileName )
112- }
113- }()
114- }
115-
105+ func readSecretData (in io.Reader , fileName string ) ([]byte , error ) {
116106 switch fileName {
117107 case "-" :
118- fileName = "STDIN"
119- return io .ReadAll (io .LimitReader (in , 2 * maxSecretSize ))
108+ data , err := io .ReadAll (io .LimitReader (in , 2 * maxSecretSize ))
109+ if err != nil {
110+ return nil , fmt .Errorf ("error reading from STDIN: %w" , err )
111+ }
112+ if len (data ) == 0 {
113+ return nil , errors .New ("error reading from STDIN: data is empty" )
114+ }
115+ return data , nil
120116 case "" :
121117 return nil , errors .New ("secret file is required" )
122118 default :
@@ -129,9 +125,16 @@ func readSecretData(in io.Reader, fileName string) (data []byte, retErr error) {
129125 // [FILE_FLAG_SEQUENTIAL_SCAN]: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#FILE_FLAG_SEQUENTIAL_SCAN
130126 f , err := sequential .Open (fileName )
131127 if err != nil {
132- return nil , err
128+ return nil , fmt . Errorf ( "error reading from %s: %w" , fileName , err )
133129 }
134130 defer f .Close ()
135- return io .ReadAll (io .LimitReader (f , 2 * maxSecretSize ))
131+ data , err := io .ReadAll (io .LimitReader (f , 2 * maxSecretSize ))
132+ if err != nil {
133+ return nil , fmt .Errorf ("error reading from %s: %w" , fileName , err )
134+ }
135+ if len (data ) == 0 {
136+ return nil , fmt .Errorf ("error reading from %s: data is empty" , fileName )
137+ }
138+ return data , nil
136139 }
137140}
0 commit comments