summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2015-06-16 08:45:55 -0400
committerEdward Thomson <ethomson@edwardthomson.com>2015-06-16 08:45:55 -0400
commit86faea5fce37987aa05cb8aa9f525fa4e90dd6ca (patch)
tree7505422a68e4b9f7dd0b455488b6d402c168c8ab
parentaeb2b991b0e645100976db620e50da65c51db66e (diff)
parent47a40d1d4421b0081622c1bf4af4f58ebb497ed5 (diff)
downloadlibgit2-86faea5fce37987aa05cb8aa9f525fa4e90dd6ca.tar.gz
Merge pull request #3225 from libgit2/cmn/url-empty
remote: return EINVALIDSPEC when given an empty URL
-rw-r--r--src/remote.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/remote.c b/src/remote.c
index 63f6d3462..7c2d99937 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -167,14 +167,18 @@ static int get_check_cert(int *out, git_repository *repo)
static int canonicalize_url(git_buf *out, const char *in)
{
-#ifdef GIT_WIN32
- const char *c;
+ if (in == NULL || strlen(in) == 0) {
+ giterr_set(GITERR_INVALID, "cannot set empty URL");
+ return GIT_EINVALIDSPEC;
+ }
+#ifdef GIT_WIN32
/* Given a UNC path like \\server\path, we need to convert this
* to //server/path for compatibility with core git.
*/
if (in[0] == '\\' && in[1] == '\\' &&
(git__isalpha(in[2]) || git__isdigit(in[2]))) {
+ const char *c;
for (c = in; *c; c++)
git_buf_putc(out, *c == '\\' ? '/' : *c);