diff --git a/util/crypto.c b/util/crypto.c index c09f467b..156a6550 100644 --- a/util/crypto.c +++ b/util/crypto.c @@ -48,7 +48,8 @@ _notmuch_crypto_decrypt (bool *attempted, notmuch_message_properties_t *list = NULL; for (list = notmuch_message_get_properties (message, "session-key", TRUE); - notmuch_message_properties_valid (list); notmuch_message_properties_move_to_next (list)) { + notmuch_message_properties_valid (list); notmuch_message_properties_move_to_next ( + list)) { if (err && *err) { g_error_free (*err); *err = NULL; @@ -61,12 +62,13 @@ _notmuch_crypto_decrypt (bool *attempted, notmuch_message_properties_value (list), decrypt_result, err); } else if (GMIME_IS_APPLICATION_PKCS7_MIME (part)) { - GMimeApplicationPkcs7Mime *pkcs7 = GMIME_APPLICATION_PKCS7_MIME (part); + GMimeApplicationPkcs7Mime *pkcs7 = GMIME_APPLICATION_PKCS7_MIME (part); GMimeSecureMimeType type = g_mime_application_pkcs7_mime_get_smime_type (pkcs7); if (type == GMIME_SECURE_MIME_TYPE_ENVELOPED_DATA) { ret = g_mime_application_pkcs7_mime_decrypt (pkcs7, GMIME_DECRYPT_NONE, - notmuch_message_properties_value (list), + notmuch_message_properties_value ( + list), decrypt_result, err); } } @@ -90,6 +92,7 @@ _notmuch_crypto_decrypt (bool *attempted, if (attempted) *attempted = true; GMimeDecryptFlags flags = GMIME_DECRYPT_NONE; + if (decrypt == NOTMUCH_DECRYPT_TRUE && decrypt_result) flags |= GMIME_DECRYPT_EXPORT_SESSION_KEY; if (GMIME_IS_MULTIPART_ENCRYPTED (part)) { @@ -128,7 +131,8 @@ _notmuch_message_crypto_new (void *ctx) } notmuch_status_t -_notmuch_message_crypto_potential_sig_list (_notmuch_message_crypto_t *msg_crypto, GMimeSignatureList *sigs) +_notmuch_message_crypto_potential_sig_list (_notmuch_message_crypto_t *msg_crypto, + GMimeSignatureList *sigs) { if (! msg_crypto) return NOTMUCH_STATUS_NULL_POINTER; @@ -157,7 +161,8 @@ _notmuch_message_crypto_potential_sig_list (_notmuch_message_crypto_t *msg_crypt bool -_notmuch_message_crypto_potential_payload (_notmuch_message_crypto_t *msg_crypto, GMimeObject *part, GMimeObject *parent, int childnum) +_notmuch_message_crypto_potential_payload (_notmuch_message_crypto_t *msg_crypto, GMimeObject *part, + GMimeObject *parent, int childnum) { const char *protected_headers = NULL; const char *forwarded = NULL; @@ -175,7 +180,8 @@ _notmuch_message_crypto_potential_payload (_notmuch_message_crypto_t *msg_crypto * encryption protocol should be "control information" metadata, * not payload. So we skip it. (see * https://tools.ietf.org/html/rfc1847#page-8) */ - if (parent && GMIME_IS_MULTIPART_ENCRYPTED (parent) && childnum == GMIME_MULTIPART_ENCRYPTED_VERSION) { + if (parent && GMIME_IS_MULTIPART_ENCRYPTED (parent) && childnum == + GMIME_MULTIPART_ENCRYPTED_VERSION) { const char *enc_type = g_mime_object_get_content_type_parameter (parent, "protocol"); GMimeContentType *ct = g_mime_object_get_content_type (part); if (ct && enc_type) { diff --git a/util/crypto.h b/util/crypto.h index 4fa5599c..3c5d384b 100644 --- a/util/crypto.h +++ b/util/crypto.h @@ -80,7 +80,8 @@ _notmuch_message_crypto_new (void *ctx); * consider a particular signature as relevant for the message. */ notmuch_status_t -_notmuch_message_crypto_potential_sig_list (_notmuch_message_crypto_t *msg_crypto, GMimeSignatureList *sigs); +_notmuch_message_crypto_potential_sig_list (_notmuch_message_crypto_t *msg_crypto, + GMimeSignatureList *sigs); /* call successful_decryption during a depth-first-search on a message * to indicate that a part was successfully decrypted. @@ -95,7 +96,8 @@ _notmuch_message_crypto_successful_decryption (_notmuch_message_crypto_t *msg_cr * this message. */ bool -_notmuch_message_crypto_potential_payload (_notmuch_message_crypto_t *msg_crypto, GMimeObject *part, GMimeObject *parent, int childnum); +_notmuch_message_crypto_potential_payload (_notmuch_message_crypto_t *msg_crypto, GMimeObject *part, + GMimeObject *parent, int childnum); #ifdef __cplusplus diff --git a/util/gmime-extra.c b/util/gmime-extra.c index 04d8ed3d..81a5b174 100644 --- a/util/gmime-extra.c +++ b/util/gmime-extra.c @@ -101,6 +101,7 @@ g_mime_certificate_get_valid_userid (GMimeCertificate *cert) if (uid == NULL) return uid; GMimeValidity validity = g_mime_certificate_get_id_validity (cert); + if (validity == GMIME_VALIDITY_FULL || validity == GMIME_VALIDITY_ULTIMATE) return uid; return NULL; diff --git a/util/repair.c b/util/repair.c index 5a64e001..5b0dfdf4 100644 --- a/util/repair.c +++ b/util/repair.c @@ -32,7 +32,8 @@ _notmuch_crypto_payload_has_legacy_display (GMimeObject *payload) if (! g_mime_content_type_is_type (g_mime_object_get_content_type (payload), "multipart", "mixed")) return false; - protected_header_parameter = g_mime_object_get_content_type_parameter (payload, "protected-headers"); + protected_header_parameter = g_mime_object_get_content_type_parameter (payload, + "protected-headers"); if ((! protected_header_parameter) || strcmp (protected_header_parameter, "v1")) return false; if (! GMIME_IS_MULTIPART (payload)) @@ -44,15 +45,16 @@ _notmuch_crypto_payload_has_legacy_display (GMimeObject *payload) return false; first = g_mime_multipart_get_part (mpayload, 0); /* Early implementations that generated "Legacy Display" parts used - Content-Type: text/rfc822-headers, but text/plain is more widely - rendered, so it is now the standard choice. We accept either as a - Legacy Display part. */ + * Content-Type: text/rfc822-headers, but text/plain is more widely + * rendered, so it is now the standard choice. We accept either as a + * Legacy Display part. */ if (! (g_mime_content_type_is_type (g_mime_object_get_content_type (first), "text", "plain") || g_mime_content_type_is_type (g_mime_object_get_content_type (first), "text", "rfc822-headers"))) return false; - protected_header_parameter = g_mime_object_get_content_type_parameter (first, "protected-headers"); + protected_header_parameter = g_mime_object_get_content_type_parameter (first, + "protected-headers"); if ((! protected_header_parameter) || strcmp (protected_header_parameter, "v1")) return false; if (! GMIME_IS_TEXT_PART (first)) @@ -77,7 +79,7 @@ static bool _notmuch_is_mixed_up_mangled (GMimeObject *part) { GMimeMultipart *mpart = NULL; - GMimeObject *parts[3] = {NULL, NULL, NULL}; + GMimeObject *parts[3] = { NULL, NULL, NULL }; GMimeContentType *type = NULL; char *prelude_string = NULL; bool prelude_is_empty; diff --git a/util/string-util.c b/util/string-util.c index 27f8a26b..9c46a81a 100644 --- a/util/string-util.c +++ b/util/string-util.c @@ -53,7 +53,7 @@ strsplit_len (const char *s, char delim, size_t *len) count++; } - if (count==0) + if (count == 0) return NULL; *len = count; @@ -183,6 +183,7 @@ parse_boolean_term (void *ctx, const char *str, /* Parse prefix */ str = skip_space (str); const char *pos = strchr (str, ':'); + if (! pos || pos == str) goto FAIL; *prefix_out = talloc_strndup (ctx, str, pos - str); diff --git a/util/zlib-extra.c b/util/zlib-extra.c index 3a75e504..1f5f9dbe 100644 --- a/util/zlib-extra.c +++ b/util/zlib-extra.c @@ -87,8 +87,9 @@ gz_error_string (util_status_t status, gzFile file) } const char * -gzerror_str(gzFile file) +gzerror_str (gzFile file) { int dummy; + return gzerror (file, &dummy); } diff --git a/util/zlib-extra.h b/util/zlib-extra.h index e9925c98..7532339b 100644 --- a/util/zlib-extra.h +++ b/util/zlib-extra.h @@ -30,7 +30,7 @@ gz_error_string (util_status_t status, gzFile stream); /* Call gzerror with a dummy errno argument, the docs don't promise to * support the NULL case */ const char * -gzerror_str(gzFile file); +gzerror_str (gzFile file); #ifdef __cplusplus }