Resolve buffer overflows in __pmDecodeNameList routine
authorNathan Scott <nathans@redhat.com>
Mon, 13 Aug 2012 01:28:43 +0000 (11:28 +1000)
committerNathan Scott <nathans@redhat.com>
Mon, 13 Aug 2012 01:28:43 +0000 (11:28 +1000)
commitf0eaefe046b1061797f45b0c20bb2ac371b504a5
tree14570d66b4d31b40c15bf6ad46add3c62364f9a7
parent7eb479b91ef12bf89a15b078af2107c8c4746a4a
Resolve buffer overflows in __pmDecodeNameList routine

__pmDecodeNameList fetches the number of bytes to allocate for storing
the incoming name strings from the PDU.  The function does not check if
the strings provided later actually fit into the buffer, leading to a
heap-based buffer overflow.

In addition, __pmDecodeNameList does not properly check the length
of the status and names arrays against the PDU length, and does not
guard against integer overflow when calculating the malloc argument.
This leads to another heap-based buffer overflow.

Original report and fixes reviewed by Florian Weimer of the Red Hat
Security team.  Red Hat bugzilla bug #840920.

Security advisory CVE-2012-3418.
src/libpcp/src/p_pmns.c