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

Re: [PATCH] linear-assignment: fix potential out of bounds memory access (was: Re: Git 2.19 Segmentation fault 11 on macOS)

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Sep 13, 2018, 02:38 UTC
Message-ID
<nycvar.QRO.7.76.6.1809122136020.73@tvgsbejvaqbjf.bet>
In-Reply-To
<20180912190108.GE4865@hank.intra.tgummerer.com>
Hi Thomas,
[quickly, as I will go back to a proper vacation after this]
On Wed, 12 Sep 2018, Thomas Gummerer wrote:
Show 11 quoted lines
> diff --git a/linear-assignment.c b/linear-assignment.c
> index 9b3e56e283..7700b80eeb 100644
> --- a/linear-assignment.c
> +++ b/linear-assignment.c
> @@ -51,8 +51,8 @@ void compute_assignment(int column_count, int row_count, int *cost,
>  		else if (j1 < -1)
>  			row2column[i] = -2 - j1;
>  		else {
> -			int min = COST(!j1, i) - v[!j1];
> -			for (j = 1; j < column_count; j++)
> +			int min = INT_MAX;
I am worried about this, as I tried very hard to avoid integer overruns.

Wouldn't it be possible to replace the `else {` by an appropriate `else if (...) { ... } else {`? E.g. `else if (column_count < 2)` or some such?

Ciao, Dscho

Show 22 quoted lines
> +			for (j = 0; j < column_count; j++)
>  				if (j != j1 && min > COST(j, i) - v[j])
>  					min = COST(j, i) - v[j];
>  			v[j1] -= min;
> diff --git a/t/t3206-range-diff.sh b/t/t3206-range-diff.sh
> index 2237c7f4af..fb4c13a84a 100755
> --- a/t/t3206-range-diff.sh
> +++ b/t/t3206-range-diff.sh
> @@ -142,4 +142,9 @@ test_expect_success 'changed message' '
>  	test_cmp expected actual
>  '
>  
> +test_expect_success 'no commits on one side' '
> +	git commit --amend -m "new message" &&
> +	git range-diff master HEAD@{1} HEAD
> +'
> +
>  test_done
> -- 
> 2.19.0.397.gdd90340f6a
> 
> 
Previous: Thomas GummererNext: Thomas Gummerer
Message 10 of 19 in “Git 2.19 Segmentation fault 11 on macOS”
  1. ryenusSep 11, 2018
  2. Derrick StoleeSep 11, 2018
  3. Derrick StoleeSep 11, 2018
  4. Derrick StoleeSep 11, 2018
  5. Thomas GummererSep 11, 2018
  6. Thomas GummererSep 11, 2018
  7. linear-assignment: fix potential out of bounds memory access (was: Re: Git 2.19 Segmentation fault 11 on macOS)Thomas Gummerer, Sep 12, 2018
  8. Junio C HamanoSep 12, 2018
  9. Thomas GummererSep 12, 2018
  10. Johannes SchindelinSep 13, 2018
  11. Thomas GummererSep 13, 2018
  12. Eric SunshineSep 13, 2018
  13. linear-assignment: fix potential out of bounds memory accessThomas Gummerer, Sep 13, 2018
  14. Jonathan NiederSep 17, 2018
  15. Junio C HamanoSep 11, 2018
  16. Elijah NewrenSep 11, 2018
  17. Thomas GummererSep 11, 2018
  18. ryenusSep 11, 2018
  19. Elijah NewrenSep 11, 2018

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.