Re: xfs_metadump in never ending loop

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux