diff options
author | Junio C Hamano <gitster@pobox.com> | 2007-10-30 11:30:43 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-10-30 16:21:56 -0700 |
commit | b6c9fb5100f8cd4081f1c6df5aea7335a11e9659 (patch) | |
tree | a797f4298a3b70d5ca787bdb42fa077959ecea0e /remote.c | |
parent | 562e35c34ced4ca7af024d213737411238dbe0f5 (diff) | |
download | git-b6c9fb5100f8cd4081f1c6df5aea7335a11e9659.tar.gz git-b6c9fb5100f8cd4081f1c6df5aea7335a11e9659.tar.xz |
Prevent send-pack from segfaulting (backport from 'master')
4491e62ae932d5774f628d1bd3be663c11058a73 (Prevent send-pack from
segfaulting when a branch doesn't match) is hereby cherry-picked
back to 'maint'.
If we can't find a source match, and we have no destination, we
need to abort the match function early before we try to match
the destination against the remote.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'remote.c')
-rw-r--r-- | remote.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -504,8 +504,11 @@ static int match_explicit(struct ref *src, struct ref *dst, if (!matched_src) errs = 1; - if (dst_value == NULL) + if (!dst_value) { + if (!matched_src) + return errs; dst_value = matched_src->name; + } switch (count_refspec_match(dst_value, dst, &matched_dst)) { case 1: |