diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-01-20 20:28:50 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-01-20 20:28:50 -0800 |
commit | df91d0e4d30ddc9bf2c55e3a63be9cb5318a409a (patch) | |
tree | 0de68b9b3ef9f2b0a72363af19fce18156d31537 /builtin-apply.c | |
parent | Merge branch 'ap/merge-backend-opts' (diff) | |
parent | builtin-apply.c: Skip filenames without enough components (diff) | |
download | tgif-df91d0e4d30ddc9bf2c55e3a63be9cb5318a409a.tar.xz |
Merge branch 'ag/maint-apply-too-large-p'
* ag/maint-apply-too-large-p:
builtin-apply.c: Skip filenames without enough components
Diffstat (limited to 'builtin-apply.c')
-rw-r--r-- | builtin-apply.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/builtin-apply.c b/builtin-apply.c index 541493e1ba..b99db0b800 100644 --- a/builtin-apply.c +++ b/builtin-apply.c @@ -404,6 +404,9 @@ static char *squash_slash(char *name) { int i = 0, j = 0; + if (!name) + return NULL; + while (name[i]) { if ((name[j++] = name[i++]) == '/') while (name[i] == '/') @@ -416,7 +419,10 @@ static char *squash_slash(char *name) static char *find_name(const char *line, char *def, int p_value, int terminate) { int len; - const char *start = line; + const char *start = NULL; + + if (p_value == 0) + start = line; if (*line == '"') { struct strbuf name = STRBUF_INIT; @@ -1199,7 +1205,8 @@ static int find_header(char *line, unsigned long size, int *hdrsize, struct patc continue; if (!patch->old_name && !patch->new_name) { if (!patch->def_name) - die("git diff header lacks filename information (line %d)", linenr); + die("git diff header lacks filename information when removing " + "%d leading pathname components (line %d)" , p_value, linenr); patch->old_name = patch->new_name = patch->def_name; } patch->is_toplevel_relative = 1; |