Skip to contentSkip to conversation

xfsprogs: ensure dup table always has entry for obfuscated name

PATCH In review Alex Elder 1 participant 1 message Dec 30, 2010

lore
Share & tools
lore

Alex Elder

author
#0 lore raw

PATCH 8/12 xfsprogs: ensure dup table always has entry for obfuscated name

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.

---
 db/metadump.c |   12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
db/metadump.c +8 -4
Index: 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

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs