rsync: avoid reallocarray() with a nmemb of 0.
authortb <tb@openbsd.org>
Fri, 27 Sep 2024 13:10:39 +0000 (13:10 +0000)
committertb <tb@openbsd.org>
Fri, 27 Sep 2024 13:10:39 +0000 (13:10 +0000)
bset->blksz can be 0 here and how reallocarray() behaves is implementation
defined.

usr.bin/rsync/blocks.c

index 7b774e6..97a51a2 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: blocks.c,v 1.25 2024/09/27 13:06:21 tb Exp $ */
+/*     $OpenBSD: blocks.c,v 1.26 2024/09/27 13:10:39 tb Exp $ */
 /*
  * Copyright (c) 2019 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -91,7 +91,7 @@ blkhash_set(struct blktab *p, const struct blkset *bset)
        struct blkhash  *blks;
        size_t           i, idx;
 
-       if (bset == NULL)
+       if (bset == NULL || bset->blksz == 0)
                return 1;
 
        /* Wipe clean the table. */