Free pointer in error path
diff --git a/lib/zip_source_file_stdio_named.c b/lib/zip_source_file_stdio_named.c
index 84f57a4..36fee45 100644
--- a/lib/zip_source_file_stdio_named.c
+++ b/lib/zip_source_file_stdio_named.c
@@ -206,6 +206,7 @@
 
 	if (fstat(fileno(ctx->f), &st) < 0) {
 	    zip_error_set(&ctx->error, ZIP_ER_TMPOPEN, errno);
+	    free(temp);
 	    return -1;
 	}