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:
parent
452b8b00f4
commit
8c09df03aa
@ -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)]
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user