git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] do not depend on undefined signed integer overflow

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Oct 4, 2010, 20:48 UTC
Message-ID
<20101004204848.GI6466@burratino>
In-Reply-To
<1286221388-4908-1-git-send-email-kusmabite@gmail.com>
Erik Faye-Lund wrote:
Show 9 quoted lines
> --- a/git-compat-util.h
> +++ b/git-compat-util.h
> @@ -28,6 +28,15 @@
>  #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
>  #define bitsizeof(x)  (CHAR_BIT * sizeof(x))
>  
> +/*
> + * Signed integer overflow is undefined in C and some compilers take
> + * advantage of this when optimizing
[...]
> + */
> +#define signed_add_overflows(a, b) \
> +    ((b) > ((INTMAX_MAX >> (bitsizeof(uintmax_t) - bitsizeof(a))) - (a)))
Clever.  I like it.
Previous: Erik Faye-Lund
Message 3 of 3 in “do not depend on undefined signed integer overflow”
  1. do not depend on undefined signed integer overflowErik Faye-Lund, Oct 4, 2010
  2. Erik Faye-LundOct 4, 2010
  3. Jonathan NiederOct 4, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.