]> git.neil.brown.name Git - git.git/commitdiff
apply: use strcmp(3) for comparing strings in gitdiff_verify_name()
authorRené Scharfe <l.s.r@web.de>
Sat, 8 Jul 2017 08:58:42 +0000 (10:58 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 9 Jul 2017 16:30:42 +0000 (09:30 -0700)
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>
apply.c

diff --git a/apply.c b/apply.c
index 4024e70c54408dee28b0f9f41d11115476925ba1..58ffe1b764d10038f1a258a143655360c79adda2 100644 (file)
--- 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") :