Skip to content

Commit

Permalink
overflows: helpers for integer assignment overflows.
Browse files Browse the repository at this point in the history
Signed-off-by: Rusty Russell <[email protected]>
  • Loading branch information
rustyrussell authored and niftynei committed Jul 20, 2021
1 parent dd00d4d commit 888774e
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions common/overflows.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#ifndef LIGHTNING_COMMON_OVERFLOWS_H
#define LIGHTNING_COMMON_OVERFLOWS_H
#include "config.h"
#include <ccan/short_types/short_types.h>

static inline bool add_overflows_size_t(uint64_t a, uint64_t b)
{
Expand All @@ -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 */

0 comments on commit 888774e

Please sign in to comment.