When the last five characters in an obfuscated filename are
generated, one of them has a randomized top nibble. This is a
fairly copmlete way of doing this. But the lower nibble is already
effectively a random character (taken from four bits of a the hash
value) so we don't lose much by simply assuming the the top bits are
always zero. This simplifies the generation of two of the final
five characters, and makes them all get done in a consistent way.
Add the use of a mask in the one case it wasn't used to be even more
consistent.
Signed-off-by: Alex Elder <aelder@xxxxxxx>
---
db/metadump.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
Index: b/db/metadump.c
===================================================================
--- a/db/metadump.c
+++ b/db/metadump.c
@@ -464,8 +464,7 @@ generate_obfuscated_name(
*/
newhash = rol32(newhash, 3) ^ hash;
- newp[namelen - 5] = (newhash >> 28) |
- (random_filename_char() & 0xf0);
+ newp[namelen - 5] = (newhash >> 28) & 0x7f;
if (is_invalid_char(newp[namelen - 5]))
continue;
newp[namelen - 4] = (newhash >> 21) & 0x7f;
@@ -477,8 +476,7 @@ generate_obfuscated_name(
newp[namelen - 2] = (newhash >> 7) & 0x7f;
if (is_invalid_char(newp[namelen - 2]))
continue;
- newp[namelen - 1] = ((newhash >> 0) ^
- (newp[namelen - 5] >> 4)) & 0x7f;
+ newp[namelen - 1] = (newhash >> 0) & 0x7f;
if (is_invalid_char(newp[namelen - 1]))
continue;
break;
|