commit: 9b31cd9f2823d742ce3431e480561244f00f1744 Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Sun Sep 18 22:10:54 2016 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Sun Sep 18 22:13:45 2016 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=9b31cd9f
writeable_check: warn about invalid mountinfo lines (bug 594284) X-Gentoo-bug: 594284 X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=594284 pym/portage/util/writeable_check.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pym/portage/util/writeable_check.py b/pym/portage/util/writeable_check.py index 26fe199..e5b14c0 100644 --- a/pym/portage/util/writeable_check.py +++ b/pym/portage/util/writeable_check.py @@ -44,6 +44,7 @@ def linux_ro_checker(dir_list): read-only, may be empty. """ ro_filesystems = set() + invalids = [] try: with io.open("/proc/self/mountinfo", mode='r', @@ -61,6 +62,7 @@ def linux_ro_checker(dir_list): _dir, attr1 = mount[0].split()[4:6] except ValueError: # If it raises ValueError we can simply ignore the line. + invalids.append(line) continue # check for situation with invalid entries for /home and /root in /proc/self/mountinfo # root path is missing sometimes on WSL @@ -72,7 +74,11 @@ def linux_ro_checker(dir_list): try: attr2 = mount[1].split()[1] except IndexError: - attr2 = mount[1] + invalids.append(line) + continue + else: + invalids.append(line) + continue if attr1.startswith('ro') or attr2.startswith('ro'): ro_filesystems.add(_dir) @@ -83,6 +89,10 @@ def linux_ro_checker(dir_list): level=logging.WARNING, noiselevel=-1) return [] + for line in invalids: + writemsg_level(_("!!! /proc/self/mountinfo contains unrecognized line: %s\n") + % line.rstrip(), level=logging.WARNING, noiselevel=-1) + ro_devs = {} for x in ro_filesystems: try: