From 85c267afa7ce4697a1231649de815b2556b3950f Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 9 Dec 2019 18:24:41 +0100 Subject: macro: avoid subtraction overflow in ALIGN_POWER2() --- src/basic/macro.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/basic/macro.h b/src/basic/macro.h index 18e5085669..712bb422b1 100644 --- a/src/basic/macro.h +++ b/src/basic/macro.h @@ -163,6 +163,11 @@ static inline size_t ALIGN_TO(size_t l, size_t ali) { /* align to next higher power-of-2 (except for: 0 => 0, overflow => 0) */ static inline unsigned long ALIGN_POWER2(unsigned long u) { + + /* Avoid subtraction overflow */ + if (u == 0) + return 0; + /* clz(0) is undefined */ if (u == 1) return 1; -- cgit v1.2.1