On Thu, Apr 16, 2015 at 7:25 AM, Nicolas Dechesne < nicolas.deche...@linaro.org> wrote:
> On Thu, Apr 16, 2015 at 3:11 PM, Anders Darander <and...@chargestorm.se> > wrote: > >> > > Running the recipe resulted in do_fetch (or do_unpack) failing again >> and >> > > complaining about missing files. This time the deletion was on a much >> > > greater scale, it had deleted so much of my home-dir that my user >> > > account was rendered entirely useless. The fastest way to recover this >> > > time was re-installing the machine. >> >> It's most likely a call to bb.utils.prunedir(destdir), with destdir >> being set to '/'... > > > > ouch... this is a bit scary ;-) > > maybe we should assert the folder name is 'sane' when we do destructive > operations like that. e.g. check that we are in TMPDIR, or TOPDIR.. > > hopefully nobody does sudo bitbake ;-) > This is scary indeed. We definitely need to be more careful about calls to dirname/basename with paths with a trailing or leading / in general, and especially for removals, and just need to do more path sanitization/normalization probably.. >>> def dirsplit(p): ... return os.path.dirname(p), os.path.basename(p) ... >>> dirsplit('/usr/bin/foo') ('/usr/bin', 'foo') >>> dirsplit('/usr/bin/') ('/usr/bin', '') >>> dirsplit('/usr/bin') ('/usr', 'bin') >>> dirsplit('/bin') ('/', 'bin') -- Christopher Larson clarson at kergoth dot com Founder - BitBake, OpenEmbedded, OpenZaurus Maintainer - Tslib Senior Software Engineer, Mentor Graphics
-- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto