Skip to content

Commit d962f83

Browse files
authored
Merge pull request #445 from dolmen-go/fix-Base64LineBreaker-short-writes
Fix "short writes" in Base64LineBreaker.Write
2 parents 5c562e6 + 80ef8fe commit d962f83

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

b64linebreaker.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func (l *base64LineBreaker) Write(data []byte) (numBytes int, err error) {
5050
return len(data), nil
5151
}
5252

53-
numBytes, err = l.out.Write(l.line[0:l.used])
53+
_, err = l.out.Write(l.line[0:l.used])
5454
if err != nil {
5555
return
5656
}
@@ -62,12 +62,15 @@ func (l *base64LineBreaker) Write(data []byte) (numBytes int, err error) {
6262
return
6363
}
6464

65-
numBytes, err = l.out.Write(newlineBytes)
65+
_, err = l.out.Write(newlineBytes)
6666
if err != nil {
6767
return
6868
}
6969

70-
return l.Write(data[excess:])
70+
var n int
71+
n, err = l.Write(data[excess:]) // recurse
72+
numBytes += n
73+
return
7174
}
7275

7376
// Close finalizes the base64LineBreaker, writing any remaining buffered data and appending a newline.

0 commit comments

Comments
 (0)