summaryrefslogtreecommitdiff
path: root/apply.c
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2017-07-08 10:58:42 +0200
committerJunio C Hamano <gitster@pobox.com>2017-07-09 09:30:42 -0700
commit2d105451c0768fc3e9600dec7bca2376f482521e (patch)
tree0e2c16b5b521193e49acdde21f9c9cac25a1da7b /apply.c
parent8bc172e5f29894d440aab772ae3a49eb2eaf5585 (diff)
downloadgit-2d105451c0768fc3e9600dec7bca2376f482521e.tar.gz
apply: use strcmp(3) for comparing strings in gitdiff_verify_name()rs/apply-avoid-over-reading
We don't know the length of the C string "another". It could be shorter than "name", which we compare it to using memchr(3). Call strcmp(3) instead to avoid running over the end of the former, and get rid of a strlen(3) call as a bonus. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'apply.c')
-rw-r--r--apply.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/apply.c b/apply.c
index 4024e70c54..58ffe1b764 100644
--- a/apply.c
+++ b/apply.c
@@ -956,13 +956,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") :