Skip to content

Commit a15ef7c

Browse files
committed
cmd/airliftd: fix serving small files (resolves #35)
Resolved a misuse of io.ReadFull used to detect MIME type. io.EOF may be returned if file is smaller than provided buffer.
1 parent d352ba2 commit a15ef7c

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

cmd/airliftd/server.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -443,10 +443,20 @@ func getFile(g *gas.Gas) (int, gas.Outputter) {
443443
if err != nil {
444444
return 500, out.Error(g, err)
445445
}
446-
447446
defer f.Close()
448447

449-
buf := make([]byte, 512)
448+
fi, err := f.Stat()
449+
if err != nil {
450+
return 500, out.Error(g, err)
451+
}
452+
453+
bufsize := 512
454+
fsize := int(fi.Size())
455+
if fsize < bufsize {
456+
bufsize = fsize
457+
}
458+
459+
buf := make([]byte, bufsize)
450460
_, err = io.ReadFull(f, buf)
451461
if err != nil {
452462
return 500, out.Error(g, err)

0 commit comments

Comments
 (0)