aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/gpgtar-extract.c2
-rw-r--r--tools/gpgtar-list.c7
2 files changed, 7 insertions, 2 deletions
diff --git a/tools/gpgtar-extract.c b/tools/gpgtar-extract.c
index 5ec22e8f7..55a517220 100644
--- a/tools/gpgtar-extract.c
+++ b/tools/gpgtar-extract.c
@@ -525,6 +525,8 @@ gpgtar_extract (const char *filename, int decrypt)
for (;;)
{
err = gpgtar_read_header (stream, tarinfo, &header, &extheader);
+ if (!err && !header)
+ break; /* End of archive. */
if (err || header == NULL)
goto leave;
diff --git a/tools/gpgtar-list.c b/tools/gpgtar-list.c
index 07056575d..14a77bb33 100644
--- a/tools/gpgtar-list.c
+++ b/tools/gpgtar-list.c
@@ -559,6 +559,8 @@ gpgtar_list (const char *filename, int decrypt)
for (;;)
{
err = read_header (stream, tarinfo, &header, &extheader);
+ if (!err && !header)
+ break; /* End of archive. */
if (err || header == NULL)
goto leave;
@@ -585,8 +587,9 @@ gpgtar_list (const char *filename, int decrypt)
int exitcode;
gpgrt_process_ctl (proc, GPGRT_PROCESS_GET_EXIT_ID, &exitcode);
- log_error ("running %s failed (exitcode=%d): %s",
- opt.gpg_program, exitcode, gpg_strerror (err));
+ if (exitcode)
+ log_error ("running %s failed (exitcode=%d): %s",
+ opt.gpg_program, exitcode, gpg_strerror (err));
}
gpgrt_process_release (proc);
proc = NULL;