| To: | xfs@xxxxxxxxxxx |
|---|---|
| Subject: | [PATCH 6/6] xfsprogs: use pointers to reference path characters |
| From: | Alex Elder <aelder@xxxxxxx> |
| Date: | Wed, 06 Oct 2010 13:49:54 -0500 |
| Reply-to: | aelder@xxxxxxx |
Switch from using array references to using pointers to
refer to the pathname characters as they get generated.
Signed-off-by: Alex Elder <aelder@xxxxxxx>
---
db/metadump.c | 31 +++++++++++++++++--------------
1 file changed, 17 insertions(+), 14 deletions(-)
Index: b/db/metadump.c
===================================================================
--- a/db/metadump.c
+++ b/db/metadump.c
@@ -444,6 +444,8 @@ generate_obfuscated_name(
name++;
do {
uchar_t high_bit;
+ uchar_t *first;
+ int shift;
dup = 0;
@@ -454,8 +456,9 @@ generate_obfuscated_name(
*/
newhash = 0;
for (i = 0; i < namelen - 5; i++) {
- newp[i] = random_filename_char();
- newhash = newp[i] ^ rol32(newhash, 7);
+ *newp = random_filename_char();
+ newhash = *newp ^ rol32(newhash, 7);
+ newp++;
}
/*
@@ -470,24 +473,24 @@ generate_obfuscated_name(
*/
newhash = rol32(newhash, 3) ^ hash;
+ first = newp;
high_bit = 0;
- for (i = 5; i > 0; i--) {
- int shift = (i - 1) * 7;
-
- newp[namelen - i] = (newhash >> shift) & 0x7f ^
high_bit;
- if (is_invalid_char(newp[namelen - i])) {
- newp[namelen - i] ^= 1;
+ for (shift = 28; shift >= 0; shift -= 7) {
+ *newp = newhash >> shift & 0x7f ^ high_bit;
+ if (is_invalid_char(*newp)) {
+ *newp ^= 1;
high_bit = 0x80;
} else
high_bit = 0;
+ newp++;
}
if (high_bit) {
- newp[namelen - 5] ^= 0x10;
- if (is_invalid_char(newp[namelen - 5])) {
- newp[namelen - 1] ^= 2;
- newp[namelen - 5] ^= 0x20;
- ASSERT(!is_invalid_char(newp[namelen - 1]));
+ *first ^= 0x10;
+ if (is_invalid_char(*first)) {
+ *--newp ^= 2;
+ *first ^= 0x20;
+ ASSERT(!is_invalid_char(*newp));
}
}
@@ -495,7 +498,7 @@ generate_obfuscated_name(
for (p = nametable[hash % NAME_TABLE_SIZE]; p; p = p->next) {
if (p->hash == hash && p->namelen == namelen &&
- memcmp(p->name, newname, namelen) == 0){
+ !memcmp(p->name, newname, namelen)) {
dup = 1;
break;
}
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH 5/6] xfsprogs: replace repeated blocks with a loop, Alex Elder |
|---|---|
| Next by Date: | [XFS updates] XFS development tree branch, master, updated. v2.6.34-19745-g5ae4ef8, xfs |
| Previous by Thread: | [PATCH 5/6] xfsprogs: replace repeated blocks with a loop, Alex Elder |
| Next by Thread: | [XFS updates] XFS development tree branch, master, updated. v2.6.34-19745-g5ae4ef8, xfs |
| Indexes: | [Date] [Thread] [Top] [All Lists] |