Fix in-band signalling in __pmGetPDU resulting in memory leak
authorKen McDonell <kenj@kenj.com.au>
Mon, 13 Aug 2012 01:28:46 +0000 (11:28 +1000)
committerNathan Scott <nathans@redhat.com>
Mon, 13 Aug 2012 01:28:46 +0000 (11:28 +1000)
commit68fb968b4ee635bb301dc9ab64e633b0d66d27b4
treef4db6265d1fc2e9af885bf8044a8a0e0e3544add
parenteeb31d44e274ddab4409d7afb3d1da0153eb2fb1
Fix in-band signalling in __pmGetPDU resulting in memory leak

The return value of __pmGetPDU is both an error code and the value of
the type field of the PDU.  A negative type value is treated as an error
by HandleClientInput, and the PDU is never unpinned, even though it was
pinned by __pmGetPDU because there was no error.  This leads to a memory
leak and eventual pmcd crash.

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

Security advisory CVE-2012-3420.
src/libpcp/src/pdu.c