[Top] [All Lists]

Re: xfs_metadump in never ending loop

To: Arkadiusz Miskiewicz <arekm@xxxxxxxx>
Subject: Re: xfs_metadump in never ending loop
From: Alex Elder <aelder@xxxxxxx>
Date: Mon, 04 Oct 2010 09:21:11 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <1286150266.4344.9.camel@doink>
References: <201010012136.47502.arekm@xxxxxxxx> <1286150266.4344.9.camel@doink>
Reply-to: aelder@xxxxxxx
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.


> 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

<Prev in Thread] Current Thread [Next in Thread>