Skip to content

Commit c46ae8d

Browse files
authored
Merge pull request #7 from libgit2/ethomson/xmerge_malloc_zero
Don't try to malloc 0 bytes in xmerge
2 parents 984bb35 + b0ae227 commit c46ae8d

1 file changed

Lines changed: 14 additions & 10 deletions

File tree

xmerge.c

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -709,19 +709,23 @@ int xdl_merge(mmfile_t *orig, mmfile_t *mf1, mmfile_t *mf2,
709709
goto out;
710710

711711
if (!xscr1) {
712-
result->ptr = xdl_malloc(mf2->size);
713-
if (!result->ptr)
714-
goto out;
712+
if (mf2->size) {
713+
result->ptr = xdl_malloc(mf2->size);
714+
if (!result->ptr)
715+
goto out;
716+
memcpy(result->ptr, mf2->ptr, mf2->size);
717+
result->size = mf2->size;
718+
}
715719
status = 0;
716-
memcpy(result->ptr, mf2->ptr, mf2->size);
717-
result->size = mf2->size;
718720
} else if (!xscr2) {
719-
result->ptr = xdl_malloc(mf1->size);
720-
if (!result->ptr)
721-
goto out;
721+
if (mf1->size) {
722+
result->ptr = xdl_malloc(mf1->size);
723+
if (!result->ptr)
724+
goto out;
725+
memcpy(result->ptr, mf1->ptr, mf1->size);
726+
result->size = mf1->size;
727+
}
722728
status = 0;
723-
memcpy(result->ptr, mf1->ptr, mf1->size);
724-
result->size = mf1->size;
725729
} else {
726730
status = xdl_do_merge(&xe1, xscr1,
727731
&xe2, xscr2,

0 commit comments

Comments
 (0)