X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=crypt.cpkg;h=67b37c2e8e925ff7452f91e6057b8fa34b77afc3;hb=8d0d7180fa5c7862e74027b497adab1f427f0020;hp=f8fce19b538581cbc240f102c71512239049668d;hpb=d8c2844a5a8b0fcf09158dcdd452f6e43e29b5db;p=apps%2Fmadmutt.git diff --git a/crypt.cpkg b/crypt.cpkg index f8fce19..67b37c2 100644 --- a/crypt.cpkg +++ b/crypt.cpkg @@ -470,7 +470,7 @@ static int data_object_to_stream(gpgme_data_t data, FILE *fp) static char *data_object_to_tempfile(gpgme_data_t data, FILE **ret_fp) { int err; - char tempfile[_POSIX_PATH_MAX]; + char tempfile[_POSIX_PATH_MAX], buf[BUFSIZ]; FILE *fp; ssize_t nread = 0; @@ -482,24 +482,21 @@ static char *data_object_to_tempfile(gpgme_data_t data, FILE **ret_fp) err = ((gpgme_data_seek (data, 0, SEEK_SET) == -1) ? gpgme_error_from_errno (errno) : 0); - if (!err) { - char buf[4096]; + if (err) { + mutt_perror(_("Can't create temporary file")); + goto error; + } - while ((nread = gpgme_data_read(data, buf, sizeof(buf)))) { - if (fwrite (buf, nread, 1, fp) != 1) { - mutt_perror (_("Can't create temporary file")); - m_fclose(&fp); - unlink (tempfile); - return NULL; - } + while ((nread = gpgme_data_read(data, buf, sizeof(buf)))) { + if (fwrite (buf, nread, 1, fp) != 1) { + mutt_perror (_("Can't create temporary file")); + goto error; } } if (nread == -1) { mutt_error (_("error reading data object: %s\n"), gpgme_strerror (err)); - unlink (tempfile); - m_fclose(&fp); - return NULL; + goto error; } if (ret_fp) { rewind(fp); @@ -508,6 +505,11 @@ static char *data_object_to_tempfile(gpgme_data_t data, FILE **ret_fp) m_fclose(&fp); } return m_strdup(tempfile); + + error: + m_fclose(&fp); + unlink (tempfile); + return NULL; } @@ -3702,16 +3704,6 @@ void crypt_pgp_extract_keys_from_attachment_list(FILE * fp, int tag, BODY * top) } } -void crypt_invoke_message (int type) -{ - if (type & APPLICATION_PGP) { - mutt_message _("Invoking PGP..."); - } - else if (type & APPLICATION_SMIME) { - mutt_message _("Invoking S/MIME..."); - } -} - int mutt_protect (HEADER * msg, char *keylist) { BODY *pbody = NULL, *tmp_pbody = NULL;