connection: Don't add uninitialized memory as 4 byte alignment padding
authorJonas Ådahl <jadahl@gmail.com>
Wed, 10 Feb 2016 15:35:44 +0000 (23:35 +0800)
committerBryce Harrington <bryce@osg.samsung.com>
Thu, 11 Feb 2016 21:48:23 +0000 (13:48 -0800)
commitbf34ac75d0d61609296de1300196c843f4246e7c
treebce2b6db87c37bb5a25c8508219551da0d4b6109
parent1906a90aab613501396fe4fb72c7fba9e13ee161
connection: Don't add uninitialized memory as 4 byte alignment padding

When we are adding padding bytes making our wl_buffer buffer content 4
byte aligned, we are just moving the pointer. Since the buffer is
allocated using plain malloc(), this means our padding bytes are
effectively uninitialized data, which could be anything previously
allocated in the server process. As we'll be sharing this buffer
content with arbitrary clients, we are effectively sharing private
memory with every client, and even though a well behaving client will
discard any such memory, a malicious client may not.

Therefor, to avoid any potential missuse of the uninitialized padding
memory shared between the server and client, initialize the buffer
content to 0, making the padding bytes always 0.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
src/connection.c