g10: Fix memory leak.
authorJustus Winter <justus@g10code.com>
Tue, 29 Nov 2016 15:48:35 +0000 (16:48 +0100)
committerJustus Winter <justus@g10code.com>
Tue, 29 Nov 2016 15:48:35 +0000 (16:48 +0100)
* g10/decrypt.c (decrypt_messages): Properly decrease the reference
count of the armor filters after pushing them.

Signed-off-by: Justus Winter <justus@g10code.com>
g10/decrypt.c

index 751b7be..c99f064 100644 (file)
@@ -180,7 +180,6 @@ void
 decrypt_messages (ctrl_t ctrl, int nfiles, char *files[])
 {
   IOBUF fp;
-  armor_filter_context_t *afx = NULL;
   progress_filter_context_t *pfx;
   char *p, *output = NULL;
   int rc=0,use_stdin=0;
@@ -254,8 +253,11 @@ decrypt_messages (ctrl_t ctrl, int nfiles, char *files[])
         {
           if (use_armor_filter(fp))
             {
-              afx = new_armor_context ();
-              push_armor_filter ( afx, fp );
+              armor_filter_context_t *afx = new_armor_context ();
+              rc = push_armor_filter (afx, fp);
+              if (rc)
+                log_error("failed to push armor filter");
+              release_armor_context (afx);
             }
         }
       rc = proc_packets (ctrl,NULL, fp);
@@ -275,6 +277,5 @@ decrypt_messages (ctrl_t ctrl, int nfiles, char *files[])
     }
 
   set_next_passphrase(NULL);
-  release_armor_context (afx);
   release_progress_context (pfx);
 }