X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=crypt.cpkg;h=00a32851cce6fe68e9c3087c08a1a4f68721fae3;hp=704777577b3a141f6d25ed12441d95c5244156ad;hb=047e6f9a37549520bb7b7ce58367f8123d6be0af;hpb=8ab1ab66eb1c4b95f9b2a5ed9c2b2cf1dfa74544 diff --git a/crypt.cpkg b/crypt.cpkg index 7047775..00a3285 100644 --- a/crypt.cpkg +++ b/crypt.cpkg @@ -17,7 +17,6 @@ #include #include -#include #include #include @@ -327,7 +326,7 @@ static gpgme_ctx_t create_gpgme_context(int for_smime) if (err) { mutt_error(_("error creating gpgme context: %s\n"), gpgme_strerror(err)); - sleep(2); + mutt_sleep(2); mutt_exit(1); } if (!for_smime) @@ -336,7 +335,7 @@ static gpgme_ctx_t create_gpgme_context(int for_smime) err = gpgme_set_protocol(ctx, GPGME_PROTOCOL_CMS); if (err) { mutt_error(_("error enabling CMS protocol: %s\n"), gpgme_strerror(err)); - sleep(2); + mutt_sleep(2); mutt_exit(1); } return ctx; @@ -353,7 +352,7 @@ static gpgme_data_t create_gpgme_data(void) if (err) { mutt_error(_("error creating gpgme data object: %s\n"), gpgme_strerror(err)); - sleep(2); + mutt_sleep(2); mutt_exit(1); } return data; @@ -471,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; @@ -483,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); @@ -509,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; }