diff options
| author | Daniel P. Berrange | 2015-12-21 12:58:51 +0100 |
|---|---|---|
| committer | Daniel P. Berrange | 2015-12-23 11:53:03 +0100 |
| commit | 7b3c618ad0cd0154993b5b5dbd34e0010960585a (patch) | |
| tree | b6889811b57451057c2cceb1d3a94e969c7230b2 /include/exec | |
| parent | io: fix setting of QIO_CHANNEL_FEATURE_FD_PASS on server connections (diff) | |
| download | qemu-7b3c618ad0cd0154993b5b5dbd34e0010960585a.tar.gz qemu-7b3c618ad0cd0154993b5b5dbd34e0010960585a.tar.xz qemu-7b3c618ad0cd0154993b5b5dbd34e0010960585a.zip | |
io: fix stack allocation when sending of file descriptors
When sending file descriptors over a socket, we have to
allocate a data buffer to hold the FDs in the scmsghdr.
Unfortunately we allocated the buffer on the stack inside
an if () {} block, but called sendmsg() outside the block.
So the stack bytes holding the FDs were liable to be
overwritten with other data. By luck this was not a problem
when sending 1 FD, but if sending 2 or more then it would
fail.
The fix is to simply move the variables outside the nested
'if' block. To keep valgrind quiet we also zero-initialize
the 'control' buffer.
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Diffstat (limited to 'include/exec')
0 files changed, 0 insertions, 0 deletions
