handle empty files in got_packfile_extract_object()
diff --git a/lib/pack.c b/lib/pack.c
index de4af7d..f9bf359 100644
--- a/lib/pack.c
+++ b/lib/pack.c
@@ -1354,9 +1354,12 @@ got_packfile_extract_object(FILE **f, struct got_object *obj,
goto done;
}
- if (obj->size < GOT_DELTA_RESULT_SIZE_CACHED_MAX)
- *f = fmemopen(NULL, obj->size, "w+");
- else
+ if (obj->size < GOT_DELTA_RESULT_SIZE_CACHED_MAX) {
+ size_t size = obj->size;
+ if (size == 0) /* empty file */
+ size = 1;
+ *f = fmemopen(NULL, size, "w+");
+ } else
*f = got_opentemp();
if (*f == NULL) {
err = got_error(GOT_ERR_FILE_OPEN);