xfsprogs: use pointers to reference path characters
PATCH 6/6 xfsprogs: use pointers to reference path characters
Switch from using array references to using pointers to refer to the pathname characters as they get generated.
Signed-off-by Alex Elder <[email protected]>
--- db/metadump.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-)
db/metadump.c +17 -14
@@ -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 ; }
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs