summaryrefslogtreecommitdiffstats
path: root/scripts/lib/recipetool
diff options
context:
space:
mode:
authorMing Liu <liu.ming50@gmail.com>2018-04-01 23:15:27 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-04-03 23:53:20 +0100
commit6c951c5a5ea012f029f8a3aed9e3c9e3f81ac61e (patch)
treeb90224f4d05eac45fd4c9461a3c677a49977d2a9 /scripts/lib/recipetool
parent73a6e7dd028a054d18a0dbfc28cfc7d4a9666bc7 (diff)
downloadpoky-6c951c5a5ea012f029f8a3aed9e3c9e3f81ac61e.tar.gz
recipetool: create: fix port number parsing issue
A flaw was found when I run: $ recipetool create "ssh://git@xxx.xxx:7999/xxx.git" the url turned out to be: "git://git@xxx.xxx/7999/xxx.git;protocol=ssh" after parsing, the port number was parsed as part of the path, this is definitely wrong and lead to fetching failures. This issue could be fixed in reformat_git_uri, by filtering out port numbers when formatting ":". (From OE-Core rev: 4290e04b69360b5e1da9f37166015e30f66cb335) Signed-off-by: Ming Liu <liu.ming50@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/recipetool')
-rw-r--r--scripts/lib/recipetool/create.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index 2fc9e0aa4e..a3710285bb 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -383,8 +383,10 @@ def reformat_git_uri(uri):
383 # which causes decodeurl to fail getting the right host and path 383 # which causes decodeurl to fail getting the right host and path
384 if len(host.split(':')) > 1: 384 if len(host.split(':')) > 1:
385 splitslash = host.split(':') 385 splitslash = host.split(':')
386 host = splitslash[0] 386 # Port number should not be split from host
387 path = '/' + splitslash[1] + path 387 if not re.match('^[0-9]+$', splitslash[1]):
388 host = splitslash[0]
389 path = '/' + splitslash[1] + path
388 #Algorithm: 390 #Algorithm:
389 # if user is defined, append protocol=ssh or if a protocol is defined, then honor the user-defined protocol 391 # if user is defined, append protocol=ssh or if a protocol is defined, then honor the user-defined protocol
390 # if no user & password is defined, check for scheme type and append the protocol with the scheme type 392 # if no user & password is defined, check for scheme type and append the protocol with the scheme type