aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2025-06-03 02:12:37 +0000
committerNIIBE Yutaka <[email protected]>2025-06-03 02:12:37 +0000
commit95d0adfc56ecfb2bfcd1d93a187b97cc0c113304 (patch)
treedf09c9d6f0134bb636d4d0146685a7c3d569107e
parentPost release updates. (diff)
downloadgnupg-95d0adfc56ecfb2bfcd1d93a187b97cc0c113304.tar.gz
gnupg-95d0adfc56ecfb2bfcd1d93a187b97cc0c113304.zip
gpgtar: Fix releasing PROC correctly.
* tools/gpgtar-extract.c (gpgtar_extract): Initialize PROC as NULL, and release at the end for the case of jumping to "leave:" label. * tools/gpgtar-list.c (gpgtar_list): Release at the end. -- Fixes-commit: 29bc14f56f6430294f225b6744012ab1f5df62e6 Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r--tools/gpgtar-extract.c4
-rw-r--r--tools/gpgtar-list.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/tools/gpgtar-extract.c b/tools/gpgtar-extract.c
index 7f75ebd23..5ec22e8f7 100644
--- a/tools/gpgtar-extract.c
+++ b/tools/gpgtar-extract.c
@@ -381,7 +381,7 @@ gpgtar_extract (const char *filename, int decrypt)
char *dirname = NULL;
struct tarinfo_s tarinfo_buffer;
tarinfo_t tarinfo = &tarinfo_buffer;
- gpgrt_process_t proc;
+ gpgrt_process_t proc = NULL;
char *logfilename = NULL;
unsigned long long notextracted;
@@ -559,7 +559,6 @@ gpgtar_extract (const char *filename, int decrypt)
}
leave:
- /* fixme: Why can't we use gpgrt_process_release (proc); */
notextracted = tarinfo->skipped_badname;
notextracted += tarinfo->skipped_suspicious;
notextracted += tarinfo->skipped_symlinks;
@@ -596,5 +595,6 @@ gpgtar_extract (const char *filename, int decrypt)
xfree (logfilename);
if (stream != es_stdin)
es_fclose (stream);
+ gpgrt_process_release (proc);
return err;
}
diff --git a/tools/gpgtar-list.c b/tools/gpgtar-list.c
index 9bd568380..07056575d 100644
--- a/tools/gpgtar-list.c
+++ b/tools/gpgtar-list.c
@@ -593,11 +593,11 @@ gpgtar_list (const char *filename, int decrypt)
}
leave:
- /* fixme: Why can't we use gpgrt_process_release (proc); */
free_strlist (extheader);
xfree (header);
if (stream != es_stdin)
es_fclose (stream);
+ gpgrt_process_release (proc);
return err;
}