]> git.ipfire.org Git - thirdparty/tar.git/commitdiff
Avoid hash_meta_directory int overflow
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 9 Aug 2025 23:13:39 +0000 (16:13 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 14 Aug 2025 17:27:28 +0000 (10:27 -0700)
* src/incremen.c (hash_directory_meta):
Avoid possibility of signed integer overflow.

src/incremen.c

index 76f982b45ea433c742e4b2757da389d32c1e7313..7a8327d3de5af9d2ec318a895faae04a1cd36af8 100644 (file)
@@ -284,8 +284,8 @@ static size_t
 hash_directory_meta (void const *entry, size_t n_buckets)
 {
   struct directory const *directory = entry;
-  /* FIXME: Work out a better algorytm */
-  return (directory->st_dev + directory->st_ino) % n_buckets;
+  /* FIXME: Work out a better algorithm.  */
+  return (directory->st_dev ^ directory->st_ino) % n_buckets;
 }
 
 /* Compare two directories for equality of their device and inode numbers. */