From: Mathieu Desnoyers Date: Tue, 19 Jan 2016 20:23:01 +0000 (-0500) Subject: Fix: handle reference count overflow X-Git-Tag: v0.9.2~4 X-Git-Url: http://git.lttng.org/?a=commitdiff_plain;h=440b950d42ae60cf1ed229c6485fb54ffaa1712e;hp=440b950d42ae60cf1ed229c6485fb54ffaa1712e;p=userspace-rcu.git Fix: handle reference count overflow The urcu refcounting API features a look and feel similar to the Linux kernel reference counting API, which has been the subject of CVE-2016-0728 (use-after-free). Therefore, improve the urcu refcounting API by dealing with reference counting overflow. For urcu_ref_get(), handle this by comparing the prior value with LONG_MAX before updating it with a cmpxchg. When an overflow would occur, trigger a abort() rather than allowing the overflow (which is a use-after-free security concern). For urcu_ref_get_unless_zero(), in addition to compare the prior value to 0, also compare it to LONG_MAX, and return failure (false) in both cases. Signed-off-by: Mathieu Desnoyers ---