Skip to content

Commit da9f94d

Browse files
committed
.lib do not allow anything else but revision hashes #224
1 parent 93a2484 commit da9f94d

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

mbed/mbed.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103

104104
# mbed url is subset of hg. mbed doesn't support ssh transport
105105
regex_mbed_url = r'^(https?)://([\w\-\.]*mbed\.(co\.uk|org|com))/(users|teams)/([\w\-]{1,32})/(repos|code)/([\w\-]+)/?$'
106-
regex_build_url = r'^(https?://([\w\-\.]*mbed\.(co\.uk|org|com))/(users|teams)/([\w\-]{1,32})/(repos|code)/([\w\-]+))/builds/?([\w\-]{12,40}|tip)?/?$'
106+
regex_build_url = r'^(https?://([\w\-\.]*mbed\.(co\.uk|org|com))/(users|teams)/([\w\-]{1,32})/(repos|code)/([\w\-]+))/builds/?([\w\-]{6,40}|tip)?/?$'
107107

108108
# base url for all mbed related repos (used as sort of index)
109109
mbed_base_url = 'https://github.com/ARMmbed'
@@ -783,6 +783,8 @@ def fromurl(cls, url, path=None):
783783
repo.path = os.path.abspath(path or os.path.join(os.getcwd(), repo.name))
784784
repo.url = formaturl(m_repo_url.group(1))
785785
repo.rev = m_repo_url.group(3)
786+
if repo.rev and not re.match(r'^([a-fA-F0-9]{6,40})$', repo.rev):
787+
error('Invalid revision (%s)' % repo.rev, -1)
786788
else:
787789
error('Invalid repository (%s)' % url.strip(), -1)
788790

@@ -870,7 +872,7 @@ def pathtype(cls, path=None):
870872
def revtype(cls, rev, ret_rev=False):
871873
if rev is None or len(rev) == 0:
872874
return 'latest' + (' revision in the current branch' if ret_rev else '')
873-
elif re.match(r'^([a-zA-Z0-9]{12,40})$', rev) or re.match(r'^([0-9]+)$', rev):
875+
elif re.match(r'^([a-fA-F0-9]{6,40})$', rev) or re.match(r'^([0-9]+)$', rev):
874876
return 'rev' + (' #'+rev[0:12] if ret_rev else '')
875877
else:
876878
return 'branch' + (' '+rev if ret_rev else '')

0 commit comments

Comments
 (0)