Skip to content

Commit d0053b4

Browse files
committed
secret: without defer
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
1 parent 348a6f6 commit d0053b4

1 file changed

Lines changed: 18 additions & 15 deletions

File tree

cli/command/secret/create.go

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)