mirror of
https://github.com/mjl-/mox.git
synced 2025-06-28 01:48:15 +03:00
smtp: add data reader fuzzer + fix OOB read
This commit is contained in:
parent
44d37892b8
commit
f10bb2c1ae
@ -135,7 +135,7 @@ func (r *DataReader) Read(p []byte) (int, error) {
|
|||||||
if len(r.buf) > 0 {
|
if len(r.buf) > 0 {
|
||||||
// Reject bare \r.
|
// Reject bare \r.
|
||||||
for i, c := range r.buf {
|
for i, c := range r.buf {
|
||||||
if c == '\r' && (i == len(r.buf) || r.buf[i+1] != '\n') {
|
if c == '\r' && (i == len(r.buf)-1 || r.buf[i+1] != '\n') {
|
||||||
r.badcrlf = true
|
r.badcrlf = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -153,3 +153,9 @@ func (r *oneReader) Read(buf []byte) (int, error) {
|
|||||||
r.buf = r.buf[1:]
|
r.buf = r.buf[1:]
|
||||||
return 1, nil
|
return 1, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func FuzzReader(f *testing.F) {
|
||||||
|
f.Fuzz(func(t *testing.T, data string) {
|
||||||
|
io.ReadAll(NewDataReader(bufio.NewReader(strings.NewReader(data))))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user