[yocto] rpmdeps buffer overflow
Marc Ferland
marc.ferland at gmail.com
Thu Aug 9 11:34:28 PDT 2018
Hi,
I'm creating a recipe for a precompiled SDK. This SDK contains various
precompiled libraries and executables. When I get to the packaging
step bitbake aborts with the following error:
ERROR: pylon-5.0.12-r0 do_package: Error executing a python function
in exec_python_func() autogenerated:
The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
0001:
*** 0002:package_do_filedeps(d)
0003:
File: '/vagrant/yocto/poky/meta/classes/package.bbclass', lineno:
1484, function: package_do_filedeps
1480: continue
1481: for files in chunks(pkgfiles[pkg], 100):
1482: pkglist.append((pkg, files, rpmdeps, pkgdest))
1483:
*** 1484: processed = oe.utils.multiprocess_exec( pkglist,
oe.package.filedeprunner)
1485:
1486: provides_files = {}
1487: requires_files = {}
1488:
File: '/vagrant/yocto/poky/meta/lib/oe/utils.py', lineno: 240,
function: multiprocess_exec
0236: mapresult = pool.map_async(function, commands,
error_callback=failures)
0237:
0238: pool.close()
0239: pool.join()
*** 0240: results = mapresult.get()
0241: except KeyboardInterrupt:
0242: pool.terminate()
0243: pool.join()
0244: raise
File: '/usr/lib/python3.6/multiprocessing/pool.py', lineno: 644, function: get
0640: raise TimeoutError
0641: if self._success:
0642: return self._value
0643: else:
*** 0644: raise self._value
0645:
0646: def _set(self, i, obj):
0647: self._success, self._value = obj
0648: if self._callback and self._success:
Exception: subprocess.CalledProcessError: Command
'['/home/vagrant/build/tmp/work/aarch64-poky-linux/pylon/5.0.12-r0/recipe-sysroot-native/usr/lib/rpm/rpmdeps',
'--alldeps', '/home/vagrant/build/tmp/work/aarch64-poky-linux/pylon/5.0.12-r0/packages-split/pylon/opt/pylon5/lib64/libpylon_TL_bcon-5.0.12.so',
REMOVED FOR BREVITY
'/home/vagrant/build/tmp/work/aarch64-poky-linux/pylon/5.0.12-r0/packages-split/pylon/opt/pylon5/bin/platforms/libqxcb.so']'
died with <Signals.SIGABRT: 6>.
Subprocess output:
*** buffer overflow detected ***:
/home/vagrant/build/tmp/work/aarch64-poky-linux/pylon/5.0.12-r0/recipe-sysroot-native/usr/lib/rpm/rpmdeps
terminated
ERROR: pylon-5.0.12-r0 do_package: Function failed: package_do_filedeps
ERROR: Logfile of failure stored in:
/home/vagrant/build/tmp/work/aarch64-poky-linux/pylon/5.0.12-r0/temp/log.do_package.30101
ERROR: Task (/vagrant/yocto/meta-telops/recipes-basler/pylon5/pylon_5.0.12.bb:do_package)
failed with exit code '1'
Digging a little deeper, it looks like certain files cause rpmdeps to
blowup. For example, issuing:
rpmdeps --alldeps
/home/vagrant/build/tmp/work/aarch64-poky-linux/pylon/5.0.12-r0/packages-split/pylon/opt/pylon5/bin/libQt5Core.so.5.6.2
I get the expected:
0 /home/vagrant/build/tmp/work/aarch64-poky-linux/pylon/5.0.12-r0/packages-split/pylon/opt/pylon5/bin/libQt5Core.so.5.6.2
P libQt5Core.so.5(Qt_5_PRIVATE_API)(64bit)
P libQt5Core.so.5(Qt_5)(64bit)
P libQt5Core.so.5(Qt_5.0)(64bit)
P libQt5Core.so.5(Qt_5.0)(64bit)
....
But running rpmdeps on one of their proprietary lib:
rpmdeps --alldeps
/home/vagrant/build/tmp/work/aarch64-poky-linux/pylon/5.0.12-r0/packages-split/pylon/opt/pylon5/bin/libPylonQtBase.so.1.0.0
*** buffer overflow detected ***:
/home/vagrant/build/tmp/work/aarch64-poky-linux/pylon/5.0.12-r0/recipe-sysroot-native/usr/lib/rpm/rpmdeps
terminated
Aborted (core dumped)
Any idea of what might be causing this?
Marc
More information about the yocto
mailing list