main.go | 14 +++++++++----- diff --git a/main.go b/main.go index 89bcc6eabdb6010ae235c37b162fb06aae213f65..20ffd34744918ff0b9087502769363549b5e2b35 100644 --- a/main.go +++ b/main.go @@ -142,8 +142,7 @@ rnd := make([]byte, 12) if _, err = io.ReadFull(rand.Reader, rnd); err != nil { fatal(err.Error()) } - fn = "." + base32.StdEncoding.WithPadding(base32.NoPadding).EncodeToString(rnd) + - ext + fn = "." + base32.StdEncoding.WithPadding(base32.NoPadding).EncodeToString(rnd) + ext fd, err := os.OpenFile(fn, os.O_RDWR|os.O_CREATE|os.O_EXCL, os.FileMode(0666)) if err != nil { fatal(err.Error()) @@ -155,10 +154,15 @@ mw := io.MultiWriter(bfd, h) if _, err = io.CopyN(mw, mr, int64(size-1)); err != nil { goto Failed } - if _, err = mr.Read(buf[:1]); err != nil { + if len(buf) == 0 { + buf = append(buf, 0) + } else { + buf = buf[:1] + } + if _, err = mr.Read(buf); err != nil { goto Failed } - if _, err = mw.Write(buf[:1]); err != nil { + if _, err = mw.Write(buf); err != nil { goto Failed } if (ext == ".txt" || ext == ".url") && buf[0] != '\n' { @@ -166,7 +170,7 @@ if err = bfd.WriteByte('\n'); err != nil { goto Failed } } - if _, err = mr.Read(buf[:1]); err != nil { + if _, err = mr.Read(buf); err != nil { goto Failed } if buf[0] != 'e' {