From: Pierre Habouzit Date: Fri, 24 Nov 2006 23:47:26 +0000 (+0100) Subject: revert bogus patch part. X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=commitdiff_plain;h=66b3c35e0bb00392991ce83bbf44cbab0ce3fd78 revert bogus patch part. --- 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). */