]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6: properly prevent temp_prefered_lft sysctl race
authorJiri Bohac <jbohac@suse.cz>
Thu, 20 Oct 2016 10:29:26 +0000 (12:29 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 20 Oct 2016 18:29:11 +0000 (14:29 -0400)
commitab00e305c991d2afceaeea5f966f9ee59f1975d6
tree296d579460ec8de98617fd4c63945f4cf4db2aae
parent62b40add74813fe11b6adc6e87dc45c10b98123b
ipv6: properly prevent temp_prefered_lft sysctl race

The check for an underflow of tmp_prefered_lft is always false
because tmp_prefered_lft is unsigned. The intention of the check
was to guard against racing with an update of the
temp_prefered_lft sysctl, potentially resulting in an underflow.

As suggested by David Miller, the best way to prevent the race is
by reading the sysctl variable using READ_ONCE.

Signed-off-by: Jiri Bohac <jbohac@suse.cz>
Reported-by: Julia Lawall <julia.lawall@lip6.fr>
Fixes: 33bd7e6f853d ("IPv6: fix DESYNC_FACTOR")
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/addrconf.c