]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
The Sun RPC framework uses a netbuf structure to represent the
authordelphij <delphij@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 29 Sep 2015 18:06:27 +0000 (18:06 +0000)
committerdelphij <delphij@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 29 Sep 2015 18:06:27 +0000 (18:06 +0000)
commit01ef02874ae959fc78d79a2e12c340cd946f6b49
tree3241b26bcfd64fc075af278219370f034ffe7952
parent83c5a1c4987d0b3206ed0b60f3e9f8bd86a7c3ac
The Sun RPC framework uses a netbuf structure to represent the
transport specific form of a universal transport address.  The
structure is expected to be opaque to consumers.  In the current
implementation, the structure contains a pointer to a buffer
that holds the actual address.

In rpcbind(8), netbuf structures are copied directly, which would
result in two netbuf structures that reference to one shared
address buffer.  When one of the two netbuf structures is freed,
access to the other netbuf structure would result in an undefined
result that may crash the rpcbind(8) daemon.

Fix this by making a copy of the buffer that is going to be freed
instead of doing a shallow copy.

Security: FreeBSD-SA-15:24.rpcbind
Security: CVE-2015-7236

git-svn-id: svn://svn.freebsd.org/base/stable/9@288384 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
usr.sbin/rpcbind/rpcb_svc_com.c