From 66b3c35e0bb00392991ce83bbf44cbab0ce3fd78 Mon Sep 17 00:00:00 2001 From: Pierre Habouzit Date: Sat, 25 Nov 2006 00:47:26 +0100 Subject: [PATCH] revert bogus patch part. --- lib-crypt/smime.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/lib-crypt/smime.c b/lib-crypt/smime.c index 0cc5cbc..82750c6 100644 --- a/lib-crypt/smime.c +++ b/lib-crypt/smime.c @@ -965,6 +965,7 @@ static char *smime_extract_signer_certificate (char *infile) char pk7out[_POSIX_PATH_MAX], certfile[_POSIX_PATH_MAX]; char tmpfname[_POSIX_PATH_MAX]; pid_t thepid; + int empty; fperr = m_tempfile (tmpfname, sizeof(tmpfname), NONULL(Tempdir), NULL); if (!fperr) { @@ -980,8 +981,6 @@ static char *smime_extract_signer_certificate (char *infile) return NULL; } - fclose (fpout); - /* Extract signer's certificate */ if ((thepid = smime_invoke (NULL, NULL, NULL, @@ -991,6 +990,7 @@ static char *smime_extract_signer_certificate (char *infile) mutt_any_key_to_continue (_ ("Error: unable to create OpenSSL subprocess!")); fclose (fperr); + fclose (fpout); mutt_unlink (pk7out); mutt_unlink (certfile); return NULL; @@ -998,15 +998,25 @@ static char *smime_extract_signer_certificate (char *infile) mutt_wait_filter (thepid); + fflush (fpout); + rewind (fpout); rewind (fperr); fflush (fperr); + empty = (fgetc (fpout) == EOF); + if (empty) { + mutt_endwin (NULL); + mutt_copy_stream (fperr, stdout); + mutt_any_key_to_continue (NULL); + fclose (fpout); + fclose (fperr); + mutt_unlink (certfile); + return NULL; + } - mutt_endwin (NULL); - mutt_copy_stream (fperr, stdout); + fclose (fpout); fclose (fperr); - mutt_any_key_to_continue (NULL); - mutt_unlink (certfile); - return NULL; + + return m_strdup(certfile); } /* Add a certificate and update index file (externally). */ -- 2.20.1