aboutsummaryrefslogtreecommitdiffstats
path: root/tools/gpgtar-extract.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gpgtar-extract.c')
-rw-r--r--tools/gpgtar-extract.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/tools/gpgtar-extract.c b/tools/gpgtar-extract.c
index 5ec22e8f7..d23ccc579 100644
--- a/tools/gpgtar-extract.c
+++ b/tools/gpgtar-extract.c
@@ -492,7 +492,8 @@ gpgtar_extract (const char *filename, int decrypt)
#endif
err = gpgrt_process_spawn (opt.gpg_program, argv,
((filename ? 0 : GPGRT_PROCESS_STDIN_KEEP)
- | GPGRT_PROCESS_STDOUT_PIPE), act, &proc);
+ | GPGRT_PROCESS_STDOUT_PIPE
+ | GPGRT_PROCESS_STDERR_KEEP), act, &proc);
gpgrt_spawn_actions_release (act);
xfree (argv);
if (err)
@@ -525,6 +526,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;