Free fname on errors.
diff --git a/lib/zip_source_filep.c b/lib/zip_source_filep.c
index 326e536..e838506 100644
--- a/lib/zip_source_filep.c
+++ b/lib/zip_source_filep.c
@@ -141,6 +141,7 @@
     }
 
     if ((zs=zip_source_function_create(read_file, ctx, error)) == NULL) {
+	free(ctx->fname);
 	free(ctx);
 	return NULL;
     }