Prevent shm_mq_send from reading uninitialized memory.
authorRobert Haas <rhaas@postgresql.org>
Thu, 24 Jul 2014 13:19:50 +0000 (09:19 -0400)
committerRobert Haas <rhaas@postgresql.org>
Thu, 24 Jul 2014 13:23:22 +0000 (09:23 -0400)
commit1144ea3421e4bcc24dd7402a1f21ba94638d591b
tree281071fc0b18d824cce2ec0828fbdebd9bdc6ae0
parent250c26ba9cf247c2d5b8dbd2435a36d11382c43e
Prevent shm_mq_send from reading uninitialized memory.

shm_mq_send_bytes didn't invariably initialize *bytes_written before
returning, which would cause shm_mq_send to read from uninitialized
memory and add the value it found there to mqh->mqh_partial_bytes.
This could cause the next attempt to send a message via the queue to
fail an assertion (if the queue was detached) or copy data from a
garbage pointer value into the queue (if non-blocking mode was in use).
src/backend/storage/ipc/shm_mq.c