From 47a40d1d4421b0081622c1bf4af4f58ebb497ed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Tue, 16 Jun 2015 12:39:11 +0200 Subject: [PATCH] remote: return EINVALIDSPEC when given an empty URL This is what we used to return in the settter and there's tests in bindings which ask for this. There's no particular reason to stop doing so. --- src/remote.c | 8 ++++++-- 1 file 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);