From 786c647015038a2740bbf2a78c4dc400cb2c2355 Mon Sep 17 00:00:00 2001 From: Nelson Elhage Date: Mon, 25 Jun 2018 02:05:21 +0000 Subject: git_refspec_transform: Handle NULL dst --- src/refspec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/refspec.c b/src/refspec.c index 8061788d1..82c4770f1 100644 --- a/src/refspec.c +++ b/src/refspec.c @@ -252,7 +252,7 @@ int git_refspec_transform(git_buf *out, const git_refspec *spec, const char *nam } if (!spec->pattern) - return git_buf_puts(out, spec->dst); + return git_buf_puts(out, spec->dst ? spec->dst : ""); return refspec_transform(out, spec->src, spec->dst, name); } -- cgit v1.2.1 From 46c9f26fa450fba9f3099236aded871a56765764 Mon Sep 17 00:00:00 2001 From: Nelson Elhage Date: Mon, 25 Jun 2018 15:47:31 +0000 Subject: Add a test. Verified that this breaks before the fix and passes afterwards. --- tests/network/refspecs.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/network/refspecs.c b/tests/network/refspecs.c index 051802b38..fe9c0e51b 100644 --- a/tests/network/refspecs.c +++ b/tests/network/refspecs.c @@ -111,6 +111,10 @@ void test_network_refspecs__transform_mid_star(void) assert_valid_transform("refs/*:refs/*", "refs/heads/master", "refs/heads/master"); } +void test_network_refspecs__no_dst(void) { + assert_valid_transform("refs/heads/master:", "refs/heads/master", ""); +} + static void assert_invalid_transform(const char *refspec, const char *name) { git_refspec spec; -- cgit v1.2.1 From ff8edac946d662e282d127c1697c5a34d17a7af7 Mon Sep 17 00:00:00 2001 From: Nelson Elhage Date: Fri, 29 Jun 2018 16:18:36 +0000 Subject: formatting fix --- tests/network/refspecs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/network/refspecs.c b/tests/network/refspecs.c index fe9c0e51b..ba09f073e 100644 --- a/tests/network/refspecs.c +++ b/tests/network/refspecs.c @@ -111,7 +111,8 @@ void test_network_refspecs__transform_mid_star(void) assert_valid_transform("refs/*:refs/*", "refs/heads/master", "refs/heads/master"); } -void test_network_refspecs__no_dst(void) { +void test_network_refspecs__no_dst(void) +{ assert_valid_transform("refs/heads/master:", "refs/heads/master", ""); } -- cgit v1.2.1