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

Re: [PATCH] apply: use strcmp(3) for comparing strings in gitdiff_verify_name()

From
Ramsay Jones <ramsay@ramsayjones.plus.com>
Date
Jul 8, 2017, 11:08 UTC
Message-ID
<d83d2395-e667-9e52-cc94-af5fbec6054c@ramsayjones.plus.com>
In-Reply-To
<d1bb978b-a7df-48a8-15c8-80730c77e11c@web.de>
On 08/07/17 09:58, René Scharfe wrote:
> Avoid running over the end of another -- a C string whose length we
> don't know -- by using strcmp(3) instead of memcmp(3) for comparing it
> with another C string.

I had to read this twice, along with the patch text, before this made any sense. ;-) The missing information being that 'another' was the name of the string variable that we were potentially 'running over the end of'.

ATB, Ramsay Jones

Show 26 quoted lines
> 
> Signed-off-by: Rene Scharfe <l.s.r@web.de>
> ---
>  apply.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/apply.c b/apply.c
> index 946be4d2f5..9b3df8a3aa 100644
> --- a/apply.c
> +++ b/apply.c
> @@ -962,13 +962,12 @@ static int gitdiff_verify_name(struct apply_state *state,
>  	}
>  
>  	if (*name) {
> -		int len = strlen(*name);
>  		char *another;
>  		if (isnull)
>  			return error(_("git apply: bad git-diff - expected /dev/null, got %s on line %d"),
>  				     *name, state->linenr);
>  		another = find_name(state, line, NULL, state->p_value, TERM_TAB);
> -		if (!another || memcmp(another, *name, len + 1)) {
> +		if (!another || strcmp(another, *name)) {
>  			free(another);
>  			return error((side == DIFF_NEW_NAME) ?
>  			    _("git apply: bad git-diff - inconsistent new filename on line %d") :
> 
Previous: Junio C HamanoNext: René Scharfe
Message 9 of 12 in “apply: use strcmp(3) for comparing strings in gitdiff_verify_name()”
  1. apply: use strcmp(3) for comparing strings in gitdiff_verify_name()René Scharfe, Jul 8, 2017
  2. Andreas SchwabJul 8, 2017
  3. René ScharfeJul 8, 2017
  4. Andreas SchwabJul 8, 2017
  5. René ScharfeJul 9, 2017
  6. Andreas SchwabJul 9, 2017
  7. René ScharfeJul 9, 2017
  8. Junio C HamanoJul 9, 2017
  9. Ramsay JonesJul 8, 2017
  10. René ScharfeJul 8, 2017
  11. Junio C HamanoJul 8, 2017
  12. René ScharfeJul 9, 2017

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.