summaryrefslogtreecommitdiff
path: root/remote.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2008-02-16 00:20:37 -0800
committerJunio C Hamano <gitster@pobox.com>2008-02-16 00:20:37 -0800
commitd5558581d2583d18cdb6823065a8f812085fbc37 (patch)
tree9d9c40072aedd0fd0aaa5a717a5c56e54847a6cd /remote.c
parentaa8d53ec387a7baf72ab5e3a91c35bb5bf20eb4d (diff)
parent959ba670ad7173bcb73afaca69625a5635f63b8b (diff)
downloadgit-d5558581d2583d18cdb6823065a8f812085fbc37.tar.gz
Merge branch 'maint'
* maint: commit: discard index after setting up partial commit filter-branch: handle filenames that need quoting diff: Fix miscounting of --check output hg-to-git: fix parent analysis mailinfo: feed only one line to handle_filter() for QP input diff.c: add "const" qualifier to "char *cmd" member of "struct ll_diff_driver" Add "const" qualifier to "char *excludes_file". Add "const" qualifier to "char *editor_program". Add "const" qualifier to "char *pager_program". config: add 'git_config_string' to refactor string config variables. diff.c: remove useless check for value != NULL fast-import: check return value from unpack_entry() Validate nicknames of remote branches to prohibit confusing ones diff.c: replace a 'strdup' with 'xstrdup'. diff.c: fixup garding of config parser from value=NULL
Diffstat (limited to 'remote.c')
-rw-r--r--remote.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/remote.c b/remote.c
index 20abbc07ac..6b56473f5b 100644
--- a/remote.c
+++ b/remote.c
@@ -343,6 +343,16 @@ struct refspec *parse_ref_spec(int nr_refspec, const char **refspec)
return rs;
}
+static int valid_remote_nick(const char *name)
+{
+ if (!name[0] || /* not empty */
+ (name[0] == '.' && /* not "." */
+ (!name[1] || /* not ".." */
+ (name[1] == '.' && !name[2]))))
+ return 0;
+ return !strchr(name, '/'); /* no slash */
+}
+
struct remote *remote_get(const char *name)
{
struct remote *ret;
@@ -351,7 +361,7 @@ struct remote *remote_get(const char *name)
if (!name)
name = default_remote_name;
ret = make_remote(name, 0);
- if (name[0] != '/') {
+ if (valid_remote_nick(name)) {
if (!ret->url)
read_remotes_file(ret);
if (!ret->url)