remote-helpers: add extra safety checks

Suggested-by: Roman Ovchinnikov <coolthecold@gmail.com> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Felipe Contreras committed Dec 7, 2013 at 07:09 UTC 0c0ebc1fdf57c3ac968e1afdadbc17b9010da6fa
2 files changed +20 -8
contrib/remote-helpers/git-remote-bzr
+10 -4
@@ -883,6 +883,16 @@ def main(args):
883 global branches, peers
884 global transports
885
886 + marks = None
887 + is_tmp = False
888 + gitdir = os.environ.get('GIT_DIR', None)
889 +
890 + if len(args) < 3:
891 + die('Not enough arguments.')
892 +
893 + if not gitdir:
894 + die('GIT_DIR not set')
895 +
896 alias = args[1]
897 url = args[2]
898
@@ -891,7 +901,6 @@ def main(args):
901 blob_marks = {}
902 parsed_refs = {}
903 files_cache = {}
894 - marks = None
904 branches = {}
905 peers = {}
906 transports = []
@@ -899,11 +908,8 @@ def main(args):
908 if alias[5:] == url:
909 is_tmp = True
910 alias = hashlib.sha1(alias).hexdigest()
902 - else:
903 - is_tmp = False
911
912 prefix = 'refs/bzr/%s' % alias
906 - gitdir = os.environ['GIT_DIR']
913 dirname = os.path.join(gitdir, 'bzr', alias)
914
915 if not is_tmp:
contrib/remote-helpers/git-remote-hg
+10 -4
@@ -1164,6 +1164,16 @@ def main(args):
1164 global dry_run
1165 global notes, alias
1166
1167 + marks = None
1168 + is_tmp = False
1169 + gitdir = os.environ.get('GIT_DIR', None)
1170 +
1171 + if len(args) < 3:
1172 + die('Not enough arguments.')
1173 +
1174 + if not gitdir:
1175 + die('GIT_DIR not set')
1176 +
1177 alias = args[1]
1178 url = args[2]
1179 peer = None
@@ -1184,16 +1194,12 @@ def main(args):
1194 if alias[4:] == url:
1195 is_tmp = True
1196 alias = hashlib.sha1(alias).hexdigest()
1187 - else:
1188 - is_tmp = False
1197
1190 - gitdir = os.environ['GIT_DIR']
1198 dirname = os.path.join(gitdir, 'hg', alias)
1199 branches = {}
1200 bmarks = {}
1201 blob_marks = {}
1202 parsed_refs = {}
1196 - marks = None
1203 parsed_tags = {}
1204 filenodes = {}
1205 fake_bmark = None