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