For bug #142279, detect and warn about null bytes in CONTENTS.
authorZac Medico <zmedico@gentoo.org>
Tue, 23 Jan 2007 21:38:58 +0000 (21:38 -0000)
committerZac Medico <zmedico@gentoo.org>
Tue, 23 Jan 2007 21:38:58 +0000 (21:38 -0000)
svn path=/main/trunk/; revision=5763

pym/portage.py

index b434b338ef1391a92a15bfbe7b64dc02a1983a7a..eb44be8aada3b35c09d6c107064c9ee8d88fdfe5 100644 (file)
@@ -6799,8 +6799,16 @@ class dblink:
                myc=open(self.dbdir+"/CONTENTS","r")
                mylines=myc.readlines()
                myc.close()
+               null_byte = "\0"
+               contents_file = os.path.join(self.dbdir, "CONTENTS")
                pos=1
                for line in mylines:
+                       if null_byte in line:
+                               # Null bytes are a common indication of corruption.
+                               writemsg("!!! Null byte found in contents " + \
+                                       "file, line %d: '%s'\n" % (pos, contents_file),
+                                       noiselevel=-1)
+                               continue
                        mydat = line.split()
                        # we do this so we can remove from non-root filesystems
                        # (use the ROOT var to allow maintenance on other partitions)