ctlsock: fix buffer truncation of JSON unmarshal error

In the error case, buf was not restored to the original
capacity. Instead of truncating "buf" and restoring (or forgetting to restore)
later, introduce the "data" slice.

Fixes https://github.com/rfjakob/gocryptfs/issues/356
This commit is contained in:
Jakob Unterwurzacher 2019-01-20 12:13:49 +01:00
parent 452b8b00f4
commit 8c09df03aa
1 changed files with 2 additions and 4 deletions

View File

@ -96,9 +96,9 @@ func (ch *ctlSockHandler) handleConnection(conn *net.UnixConn) {
conn.Close()
return
}
buf = buf[:n]
data := buf[:n]
var in RequestStruct
err = json.Unmarshal(buf, &in)
err = json.Unmarshal(data, &in)
if err != nil {
tlog.Warn.Printf("ctlsock: JSON Unmarshal error: %#v", err)
err = errors.New("JSON Unmarshal error: " + err.Error())
@ -106,8 +106,6 @@ func (ch *ctlSockHandler) handleConnection(conn *net.UnixConn) {
continue
}
ch.handleRequest(&in, conn)
// Restore original size.
buf = buf[:cap(buf)]
}
}