xfs
[Top] [All Lists]

Re: [PATCH v3, 15/16] xfsprogs: metadump: use printable characters for o

To: Alex Elder <aelder@xxxxxxx>
Subject: Re: [PATCH v3, 15/16] xfsprogs: metadump: use printable characters for obfuscated names
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Thu, 24 Feb 2011 19:45:45 +1100
Cc: xfs@xxxxxxxxxxx
In-reply-to: <201102182121.p1ILL2Ti029193@xxxxxxxxxxxxxxxxxxxxxx>
References: <201102182121.p1ILL2Ti029193@xxxxxxxxxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.20 (2009-06-14)
On Fri, Feb 18, 2011 at 03:21:02PM -0600, Alex Elder wrote:
> There is probably not much need for an extreme amount of randomness
> in the obfuscated names produced in metadumps.  Limit the character
> set used for (most of) these names to printable characters rather
> than every permittable byte.  The result makes metadumps a bit more
> natural to work with.
> 
> I chose the set of all upper- and lower-case letters, digits, and
> the dash and underscore for the alphabet.  It could easily be
> expanded to include others (or reduced for that matter).
> 
> This change also avoids ever having to retry after picking an
> unusable character.
> 
> Signed-off-by: Alex Elder <aelder@xxxxxxx>
> 
> No significant changes in this version from the last version posted.
> 
> ---
>  db/metadump.c |    9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> Index: b/db/metadump.c
> ===================================================================
> --- a/db/metadump.c
> +++ b/db/metadump.c
> @@ -412,12 +412,11 @@ nametable_add(xfs_dahash_t hash, int nam
>  static inline uchar_t
>  random_filename_char(void)
>  {
> -     uchar_t                 c;
> +     static uchar_t filename_alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
> +                                             "abcdefghijklmnopqrstuvwxyz"
> +                                             "0123456789-_";
>  
> -     do {
> -             c = random() % 127 + 1;
> -     } while (c == '/');
> -     return c;
> +     return filename_alphabet[random() % (sizeof filename_alphabet - 1)];
>  }

Why not just:

        do {
                c = random() % 127 + 1;
        } while (!isalnum(c));

        return c;

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

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