]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC 198301
authorqingli <qingli@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 20 Oct 2009 21:36:56 +0000 (21:36 +0000)
committerqingli <qingli@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 20 Oct 2009 21:36:56 +0000 (21:36 +0000)
commit9d2389d06154212a85f58bc99ff1da2a7e146172
treef9ea4b2f568bb2257eca95e41927742dac297039
parent8d4a85a630ff0a1112e35750927a0d0724c6bfcd
MFC 198301

In the ARP callout timer expiration function, the current time_second
is compared against the entry expiration time value (that was set based
on time_second) to check if the current time is larger than the set
expiration time. Due to the +/- timer granularity value, the comparison
returns false, causing the alternative code to be executed. The
alternative code path freed the memory without removing that entry
from the table list, causing a use-after-free bug.

Reviewed by: discussed with kmacy
Approved by: re
Verified by: rnoland, yongari

git-svn-id: svn://svn.freebsd.org/base/stable/8@198308 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/netinet/if_ether.c