--- ./src/libgit2/pack-objects.c_orig	2023-04-19 09:09:35.233474172 +0000
+++ ./src/libgit2/pack-objects.c	2023-04-19 09:11:59.270103673 +0000
@@ -528,7 +528,7 @@
 	if (!pb->nr_objects)
 		return 0;
 
-	if ((wo = git__mallocarray(pb->nr_objects, sizeof(*wo))) == NULL)
+	if ((wo = git__mallocarray((pb->nr_objects?pb->nr_objects:1), sizeof(*wo))) == NULL)
 		return -1;
 
 	for (i = 0; i < pb->nr_objects; i++) {
--- ./src/libgit2/merge.c_orig	2023-04-19 09:17:10.457488223 +0000
+++ ./src/libgit2/merge.c	2023-04-19 09:20:12.436324065 +0000
@@ -1552,11 +1552,14 @@
 	    !diff_list->conflicts.length)
 		return 0;
 
-	similarity_ours = git__calloc(diff_list->conflicts.length,
+	/* Check if nelem/length is zero to avoid calloc(0) */
+       int conflicts_length = (diff_list->conflicts.length?diff_list->conflicts.length:1);
+
+       similarity_ours = git__calloc(conflicts_length,
 		sizeof(struct merge_diff_similarity));
 	GIT_ERROR_CHECK_ALLOC(similarity_ours);
 
-	similarity_theirs = git__calloc(diff_list->conflicts.length,
+	similarity_theirs = git__calloc(conflicts_length,
 		sizeof(struct merge_diff_similarity));
 	GIT_ERROR_CHECK_ALLOC(similarity_theirs);
 
