Use after free when fseeko fails
In _zip_stdio_op_create_temp_output_cloning when fseeko fails the temp
value gets freed but then the freed pointer is assigned to ctx->tmpname.
diff --git a/lib/zip_source_file_stdio_named.c b/lib/zip_source_file_stdio_named.c
index 5387c76..8027e73 100644
--- a/lib/zip_source_file_stdio_named.c
+++ b/lib/zip_source_file_stdio_named.c
@@ -255,6 +255,7 @@
(void)remove(temp);
free(temp);
zip_error_set(&ctx->error, ZIP_ER_TMPOPEN, errno);
+ return -1;
}
ctx->fout = tfp;