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

Re: [PATCH] mergesort: avoid left shift overflow

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Nov 19, 2021, 16:51 UTC
Message-ID
<nycvar.QRO.7.76.6.2111191750400.63@tvgsbejvaqbjf.bet>
In-Reply-To
<7fbd4cf4-5f66-a4cd-0c41-e5b12d14d761@iee.email>
Hi Philip,
On Thu, 18 Nov 2021, Philip Oakley wrote:
Show 35 quoted lines
> On 15/11/2021 23:19, René Scharfe wrote:
> > Use size_t to match n when building the bitmask for checking whether a
> > rank is occupied, instead of the default signed int.
> >
> > Signed-off-by: René Scharfe <l.s.r@web.de>
> > ---
> > Ugh, sorry. :(
> >
> >  mergesort.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/mergesort.c b/mergesort.c
> > index 6216835566..bd9c6ef8ee 100644
> > --- a/mergesort.c
> > +++ b/mergesort.c
> > @@ -63,7 +63,7 @@ void *llist_mergesort(void *list,
> >  		void *next = get_next_fn(list);
> >  		if (next)
> >  			set_next_fn(list, NULL);
> > -		for (i = 0; n & (1 << i); i++)
> > +		for (i = 0; n & ((size_t)1 << i); i++)
> >  			list = llist_merge(ranks[i], list, get_next_fn,
> >  					   set_next_fn, compare_fn);
> >  		n++;
> > --
> > 2.33.1
> Looks good to me.
>
> I already had this locally as part of an MSVC (Visual Studio) fix for
> the various C4334 warnings.
>
> The other cases are in object-file.c, diffcore-delta.c (2 occurrences) ,
> and repack.c.
>
> My patches are in https://github.com/PhilipOakley/git/tree/oneU_t

How about rebasing the remaining patches from https://github.com/git-for-windows/git/compare/main...PhilipOakley:oneU_t on top of `rs/mergesort` and then submitting them, to avoid duplicate efforts?

Ciao, Dscho

Previous: Philip OakleyNext: René Scharfe
Message 6 of 10 in “mergesort: avoid left shift overflow”
  1. mergesort: avoid left shift overflowRené Scharfe, Nov 15, 2021
  2. Johannes SchindelinNov 16, 2021
  3. Junio C HamanoNov 17, 2021
  4. Johannes SchindelinNov 17, 2021
  5. Philip OakleyNov 18, 2021
  6. Johannes SchindelinNov 19, 2021
  7. René ScharfeNov 19, 2021
  8. Philip OakleyNov 19, 2021
  9. Junio C HamanoNov 19, 2021
  10. Philip OakleyNov 19, 2021

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.