]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r299507:
authorngie <ngie@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 10 Jun 2016 18:02:51 +0000 (18:02 +0000)
committerngie <ngie@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 10 Jun 2016 18:02:51 +0000 (18:02 +0000)
commit1c0d31f5da7c73f4cfcd2162f4062dd4f4a23178
treec41800b7a8ebafbf4f266d7c0bb731d71ca72683
parent26687781eb2e683d4aaad1b97a2fd033bec20759
MFC r299507:
r299507 (by cem):

rtadvd(8): Fix a typo in full msg receive logic

Check against the size of the struct, not the pointer.  Previously, a message
with a cm_len between 9 and 23 (inclusive) could cause int msglen to underflow
and read(2) to be invoked with msglen size (implicitly cast to signed),
overrunning the caller-provided buffer.

All users of cm_recv() supply a stack buffer.

On the other hand, the rtadvd control socket appears to only be writable by the
owner, who is probably root.

While here, correct some types to be size_t or ssize_t.

CID: 1008477
Security: unix socket remotes may overflow stack in rtadvd

git-svn-id: svn://svn.freebsd.org/base/stable/10@301803 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
usr.sbin/rtadvd/control.c