The following EROFS patch will use this helper to handle overflow ALIGN_UP() cases.
Signed-off-by: Gao Xiang <hsiang...@linux.alibaba.com> --- include/grub/safemath.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/grub/safemath.h b/include/grub/safemath.h index fbd9b5925..baaea0ef4 100644 --- a/include/grub/safemath.h +++ b/include/grub/safemath.h @@ -32,6 +32,22 @@ #define grub_cast(a, res) grub_add ((a), 0, (res)) +#define ALIGN_UP_OVF(v, align, res) \ +({ \ + bool __failed; \ + typeof(v) a; \ + \ + __failed = grub_sub ((typeof(v))(align), 1, &a); \ + if (__failed == false) \ + { \ + __failed = grub_add (v, a, res); \ + if (__failed == false) \ + { \ + *(res) &= ~a; \ + } \ + } \ +__failed;}) + #else #error gcc 5.1 or newer or clang 8.0 or newer is required #endif -- 2.39.3 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel