diff --git a/common/overflows.h b/common/overflows.h index b649532ef..117de580a 100644 --- a/common/overflows.h +++ b/common/overflows.h @@ -1,6 +1,7 @@ #ifndef LIGHTNING_COMMON_OVERFLOWS_H #define LIGHTNING_COMMON_OVERFLOWS_H #include "config.h" +#include static inline bool add_overflows_size_t(uint64_t a, uint64_t b) { @@ -21,4 +22,22 @@ static inline bool mul_overflows_u64(uint64_t a, uint64_t b) ret = a * b; return (ret / a != b); } + +static inline bool assign_overflow_u8(u8 *dst, uint64_t v) +{ + *dst = v; + return *dst == v; +} + +static inline bool assign_overflow_u16(u16 *dst, uint64_t v) +{ + *dst = v; + return *dst == v; +} + +static inline bool assign_overflow_u32(u32 *dst, uint64_t v) +{ + *dst = v; + return *dst == v; +} #endif /* LIGHTNING_COMMON_OVERFLOWS_H */