From: Junio C Hamano Date: Tue, 30 Oct 2007 18:30:43 GMT Subject: Re: [BUG] remote.c/match_explicit() ... NULL pointer dereferenciation (git 1.5.3.4) Message-ID: <7vwst4lajw.fsf@gitster.siamese.dyndns.org> In-Reply-To: <200710301144.32528@rk-nord.at> Subject: Prevent send-pack from segfaulting (backport from 'master') 4491e62ae932d5774f628d1bd3be663c11058a73 (Prevent send-pack from segfaulting when a branch doesn't match) 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 --- Thanks. Shawn fixed it on the 'master' side but 'maint' is still using the old code. remote.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/remote.c b/remote.c index cdbbdcb..9a88917 100644 --- a/remote.c +++ b/remote.c @@ -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: