diff --git a/fs/bcachefs/darray.c b/fs/bcachefs/darray.c
index ac35b8b705ae1c076e780af570bd824d87c28ab2..b7d223f85873e2e8e5c2d1b0969f28dc5c06d1ff 100644
--- a/fs/bcachefs/darray.c
+++ b/fs/bcachefs/darray.c
@@ -13,7 +13,8 @@ int __bch2_darray_resize(darray_char *d, size_t element_size, size_t new_size, g
 		if (!data)
 			return -ENOMEM;
 
-		memcpy(data, d->data, d->size * element_size);
+		if (d->size)
+			memcpy(data, d->data, d->size * element_size);
 		if (d->data != d->preallocated)
 			kvfree(d->data);
 		d->data	= data;