projects
/
apps
/
madmutt.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8eeb8c4
)
revert bogus patch part.
author
Pierre Habouzit
<madcoder@debian.org>
Fri, 24 Nov 2006 23:47:26 +0000
(
00:47
+0100)
committer
Pierre Habouzit
<madcoder@debian.org>
Fri, 24 Nov 2006 23:47:26 +0000
(
00:47
+0100)
lib-crypt/smime.c
patch
|
blob
|
history
diff --git
a/lib-crypt/smime.c
b/lib-crypt/smime.c
index
0cc5cbc
..
82750c6
100644
(file)
--- 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;
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) {
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;
}
return NULL;
}
- fclose (fpout);
-
/* Extract signer's certificate
*/
if ((thepid = smime_invoke (NULL, NULL, NULL,
/* 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);
mutt_any_key_to_continue (_
("Error: unable to create OpenSSL subprocess!"));
fclose (fperr);
+ fclose (fpout);
mutt_unlink (pk7out);
mutt_unlink (certfile);
return NULL;
mutt_unlink (pk7out);
mutt_unlink (certfile);
return NULL;
@@
-998,15
+998,25
@@
static char *smime_extract_signer_certificate (char *infile)
mutt_wait_filter (thepid);
mutt_wait_filter (thepid);
+ fflush (fpout);
+ rewind (fpout);
rewind (fperr);
fflush (fperr);
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);
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). */
}
/* Add a certificate and update index file (externally). */