mirror of https://github.com/torvalds/linux.git
When a reference counter is at zero and refcount_sub_and_test() is invoked to subtract zero, the function accepts this request without any warning and returns true. This behavior does not seem ideal because the counter being already at zero indicates a use-after-free. Furthermore, returning true by refcount_sub_and_test() in this case potentially results in a double-free done by its caller. Modify the underlying function __refcount_sub_and_test() to warn about this case as a use-after-free and have it return false to avoid the potential double-free. Signed-off-by: Petr Pavlu <petr.pavlu@suse.com> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lore.kernel.org/r/20240717130023.5675-1-petr.pavlu@suse.com Signed-off-by: Kees Cook <kees@kernel.org> |
||
|---|---|---|
| .. | ||
| Makefile | ||
| bugs.c | ||
| cfi.c | ||
| core.c | ||
| fortify.c | ||
| heap.c | ||
| lkdtm.h | ||
| perms.c | ||
| powerpc.c | ||
| refcount.c | ||
| rodata.c | ||
| stackleak.c | ||
| usercopy.c | ||