diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-01-31 18:04:11 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-01-31 18:04:11 -0800 |
commit | 972866403e8adc992625d2ff5e608c028b08bf30 (patch) | |
tree | 0094bd53c6e4a3857597c392e35c7517b789e59c | |
parent | 45e9d6db3e1af8303ba724e3b857b3e461f705fc (diff) | |
download | portage-972866403e8adc992625d2ff5e608c028b08bf30.tar.gz portage-972866403e8adc992625d2ff5e608c028b08bf30.tar.bz2 portage-972866403e8adc992625d2ff5e608c028b08bf30.zip |
LinkageMapELF: handle null bytes in NEEDED.ELF.2
This avoids an error from os.stat:
TypeError: must be encoded string without NULL bytes, not str
-rw-r--r-- | pym/portage/util/_dyn_libs/LinkageMapELF.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/pym/portage/util/_dyn_libs/LinkageMapELF.py b/pym/portage/util/_dyn_libs/LinkageMapELF.py index f7513573d..e71ac735a 100644 --- a/pym/portage/util/_dyn_libs/LinkageMapELF.py +++ b/pym/portage/util/_dyn_libs/LinkageMapELF.py @@ -287,6 +287,13 @@ class LinkageMapELF(object): l = l.rstrip("\n") if not l: continue + if '\0' in l: + # os.stat() will raise "TypeError: must be encoded string + # without NULL bytes, not str" in this case. + writemsg_level(_("\nLine contains null byte(s) " \ + "in %s: %s\n\n") % (location, l), + level=logging.ERROR, noiselevel=-1) + continue fields = l.split(";") if len(fields) < 5: writemsg_level(_("\nWrong number of fields " \ |