On Sun, 2010-10-03 at 18:57 -0500, Alex Elder wrote: > On Fri, 2010-10-01 at 21:36 +0200, Arkadiusz Miskiewicz wrote: > > generate_obfuscated_name() in metadump.c can go into > > never ending loop for some file names. Reproducer below. > > The reason it hangs is that the algorithm for computing > a name with the same hash value as the name is stuck with > a portion of the hash whose only possible result includes > the string "/" in it. I understand this problem, and have a solution. But before sending out the code I want to write up an explanation of the problem, including the effect of the hash and why the existing algorithm has problems. Stay tuned. -Alex > The hash for the file "R\323\257NE" is 0x3ab4b3740. > > One step in the algorithm is this: > newname[namelen - 3] = (newhash >> 14) & 0x7f; > if (is_invalid_char(newname[namelen - 3])) > continue; > > But the result of that is 0x2f, which is the '/' > character, which is illegal. So this algorithm > will try again indefinitely, never finding a file > name with a matching hash. > > I am looking into this a bit more. Will report back > later, probably tomorrow. > > -Alex > > _______________________________________________ > xfs mailing list > xfs@xxxxxxxxxxx > http://oss.sgi.com/mailman/listinfo/xfs _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs