xfs
[Top] [All Lists]

[PATCH 08/12] xfsprogs: ensure dup table always has entry for obfuscated

To: xfs@xxxxxxxxxxx
Subject: [PATCH 08/12] xfsprogs: ensure dup table always has entry for obfuscated name
From: Alex Elder <aelder@xxxxxxx>
Date: Thu, 30 Dec 2010 14:41:45 -0600
Reply-to: aelder@xxxxxxx
We need to ensure the name table has a copy of all the names in
a directory in order to avoid creating duplicate entries when
obfuscating names.  Currently there is an (unlikely) case where
the name is passed back without such an entry being created.
Reorder things so that won't happen.

Signed-off-by: Alex Elder <aelder@xxxxxxx>

---
 db/metadump.c |   12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

Index: b/db/metadump.c
===================================================================
--- a/db/metadump.c
+++ b/db/metadump.c
@@ -519,18 +519,22 @@ generate_obfuscated_name(
                }
        } while (dup);
 
-       memcpy(name, newname, namelen);
+       /* Create an entry for the name in the name table */
 
        p = malloc(sizeof(name_ent_t) + namelen);
        if (p == NULL)
                return;
 
-       p->next = nametable[hash % NAME_TABLE_SIZE];
-       p->hash = hash;
        p->namelen = namelen;
-       memcpy(p->name, name, namelen);
+       memcpy(p->name, newname, namelen);
+       p->hash = hash;
+       p->next = nametable[hash % NAME_TABLE_SIZE];
 
        nametable[hash % NAME_TABLE_SIZE] = p;
+
+       /* Update the caller's copy with the obfuscated name */
+
+       memcpy(name, newname, namelen);
 }
 
 static void


<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH 08/12] xfsprogs: ensure dup table always has entry for obfuscated name, Alex Elder <=