mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
wic: Ensure internal workdir is not reused
If a path is specified for the internal wic working directory using the -w/--workdir argument then it must not already exist. Re-using a previous workdir could easily result in rootfs and intermediate files from a previous build being added to the current image. (From OE-Core rev: 2e40c8d4109024ff704c5ce40d98050ca7f34dd5) Signed-off-by: Paul Barker <pbarker@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
d710a8013e
commit
4e6cb084f5
|
@ -62,7 +62,7 @@ class DirectPlugin(ImagerPlugin):
|
|||
|
||||
self.name = "%s-%s" % (os.path.splitext(os.path.basename(wks_file))[0],
|
||||
strftime("%Y%m%d%H%M"))
|
||||
self.workdir = options.workdir or tempfile.mkdtemp(dir=self.outdir, prefix='tmp.wic.')
|
||||
self.workdir = self.setup_workdir(options.workdir)
|
||||
self._image = None
|
||||
self.ptable_format = self.ks.bootloader.ptable
|
||||
self.parts = self.ks.partitions
|
||||
|
@ -78,6 +78,16 @@ class DirectPlugin(ImagerPlugin):
|
|||
self._image = PartitionedImage(image_path, self.ptable_format,
|
||||
self.parts, self.native_sysroot)
|
||||
|
||||
def setup_workdir(self, workdir):
|
||||
if workdir:
|
||||
if os.path.exists(workdir):
|
||||
raise WicError("Internal workdir '%s' specified in wic arguments already exists!" % (workdir))
|
||||
|
||||
os.makedirs(workdir)
|
||||
return workdir
|
||||
else:
|
||||
return tempfile.mkdtemp(dir=self.outdir, prefix='tmp.wic.')
|
||||
|
||||
def do_create(self):
|
||||
"""
|
||||
Plugin entry point.
|
||||
|
|
Loading…
Reference in New Issue
Block a user