selinux: update filenametr_hash() to use full_name_hash()
authorPaul Moore <paul@paul-moore.com>
Fri, 10 Nov 2023 20:46:49 +0000 (15:46 -0500)
committerPaul Moore <paul@paul-moore.com>
Thu, 16 Nov 2023 17:45:33 +0000 (12:45 -0500)
Using full_name_hash() instead of partial_name_hash() should result
in cleaner and better performing code.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Paul Moore <paul@paul-moore.com>
security/selinux/ss/policydb.c

index 595a435ea9c85b7df725880502e3f6cc3839d821..bd1e7f26d951107f44d232b6166c79d4af30795a 100644 (file)
@@ -409,16 +409,9 @@ out:
 static u32 filenametr_hash(const void *k)
 {
        const struct filename_trans_key *ft = k;
-       unsigned long hash;
-       unsigned int byte_num;
-       unsigned char focus;
+       unsigned long salt = ft->ttype ^ ft->tclass;
 
-       hash = ft->ttype ^ ft->tclass;
-
-       byte_num = 0;
-       while ((focus = ft->name[byte_num++]))
-               hash = partial_name_hash(focus, hash);
-       return hash;
+       return full_name_hash((void *)salt, ft->name, strlen(ft->name));
 }
 
 static int filenametr_cmp(const void *k1, const void *k2)