diff options
Diffstat (limited to 'bitbake/lib/bb/fetch2/__init__.py')
-rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index 06f1eb4e81..cd7362c44a 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py | |||
@@ -1420,7 +1420,13 @@ class FetchMethod(object): | |||
1420 | 1420 | ||
1421 | # If 'subdir' param exists, create a dir and use it as destination for unpack cmd | 1421 | # If 'subdir' param exists, create a dir and use it as destination for unpack cmd |
1422 | if 'subdir' in urldata.parm: | 1422 | if 'subdir' in urldata.parm: |
1423 | unpackdir = '%s/%s' % (rootdir, urldata.parm.get('subdir')) | 1423 | subdir = urldata.parm.get('subdir') |
1424 | if os.path.isabs(subdir): | ||
1425 | if not os.path.realpath(subdir).startswith(os.path.realpath(rootdir)): | ||
1426 | raise UnpackError("subdir argument isn't a subdirectory of unpack root %s" % rootdir, urldata.url) | ||
1427 | unpackdir = subdir | ||
1428 | else: | ||
1429 | unpackdir = os.path.join(rootdir, subdir) | ||
1424 | bb.utils.mkdirhier(unpackdir) | 1430 | bb.utils.mkdirhier(unpackdir) |
1425 | else: | 1431 | else: |
1426 | unpackdir = rootdir | 1432 | unpackdir = rootdir |