diff options
author | Ming Liu <liu.ming50@gmail.com> | 2018-04-01 23:15:27 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-04-03 23:53:20 +0100 |
commit | 6c951c5a5ea012f029f8a3aed9e3c9e3f81ac61e (patch) | |
tree | b90224f4d05eac45fd4c9461a3c677a49977d2a9 /scripts/lib/recipetool | |
parent | 73a6e7dd028a054d18a0dbfc28cfc7d4a9666bc7 (diff) | |
download | poky-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.py | 6 |
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 |