Module Name:    src
Committed By:   kamil
Date:           Sat Feb 15 09:57:30 UTC 2020

Modified Files:
        src/external/bsd/jemalloc/dist/src: tcache.c

Log Message:
jemalloc: Avoid variable length array with length 0

Cherry-pick upstrem patch.

https://github.com/jemalloc/jemalloc/pull/1768


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 src/external/bsd/jemalloc/dist/src/tcache.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/bsd/jemalloc/dist/src/tcache.c
diff -u src/external/bsd/jemalloc/dist/src/tcache.c:1.1.1.1 src/external/bsd/jemalloc/dist/src/tcache.c:1.2
--- src/external/bsd/jemalloc/dist/src/tcache.c:1.1.1.1	Mon Mar  4 17:10:23 2019
+++ src/external/bsd/jemalloc/dist/src/tcache.c	Sat Feb 15 09:57:30 2020
@@ -111,7 +111,8 @@ tcache_bin_flush_small(tsd_t *tsd, tcach
 	arena_t *arena = tcache->arena;
 	assert(arena != NULL);
 	unsigned nflush = tbin->ncached - rem;
-	VARIABLE_ARRAY(extent_t *, item_extent, nflush);
+	/* Variable length array must have > 0 length. */
+	VARIABLE_ARRAY(extent_t *, item_extent, nflush + + 1);
 	/* Look up extent once per item. */
 	for (unsigned i = 0 ; i < nflush; i++) {
 		item_extent[i] = iealloc(tsd_tsdn(tsd), *(tbin->avail - 1 - i));
@@ -196,7 +197,8 @@ tcache_bin_flush_large(tsd_t *tsd, cache
 	arena_t *arena = tcache->arena;
 	assert(arena != NULL);
 	unsigned nflush = tbin->ncached - rem;
-	VARIABLE_ARRAY(extent_t *, item_extent, nflush);
+	/* Variable length array must have > 0 length. */
+	VARIABLE_ARRAY(extent_t *, item_extent, nflush + 1);
 	/* Look up extent once per item. */
 	for (unsigned i = 0 ; i < nflush; i++) {
 		item_extent[i] = iealloc(tsd_tsdn(tsd), *(tbin->avail - 1 - i));

Reply via email to