[gmime] Report invalid message header parameters (#41)
- From: Jeffrey Stedfast <fejj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gmime] Report invalid message header parameters (#41)
- Date: Wed, 10 Jan 2018 15:28:39 +0000 (UTC)
commit 14671817dc1a64d8840b2f612cd143f29d55ecbf
Author: albrechtd <albrecht dress arcor de>
Date: Tue Jan 9 20:08:22 2018 +0100
Report invalid message header parameters (#41)
The warning is triggered when a parameter value is missing, the parameter name
or value are malformed, or the parameter list ends with a ';'. This is
typically not critical, but may indicate a spam message.
examples/msgcheck.c | 2 ++
gmime/gmime-param.c | 3 ++-
gmime/gmime-parser-options.h | 2 ++
3 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/examples/msgcheck.c b/examples/msgcheck.c
index 83cc893..88addef 100644
--- a/examples/msgcheck.c
+++ b/examples/msgcheck.c
@@ -44,6 +44,8 @@ errcode2str(GMimeParserWarning errcode)
return "invalid Content-Type";
case GMIME_WARN_INVALID_RFC2047_HEADER_VALUE:
return "invalid RFC 2047 encoded header value";
+ case GMIME_WARN_INVALID_PARAMETER:
+ return "invalid header parameter";
case GMIME_WARN_MALFORMED_MULTIPART:
return "malformed multipart";
case GMIME_WARN_TRUNCATED_MESSAGE:
diff --git a/gmime/gmime-param.c b/gmime/gmime-param.c
index 5d2331c..018e4b9 100644
--- a/gmime/gmime-param.c
+++ b/gmime/gmime-param.c
@@ -1108,7 +1108,8 @@ decode_param (GMimeParserOptions *options, const char **in, char **namep, char *
*namep = name;
*in = inptr;
return TRUE;
- }
+ } else
+ _g_mime_parser_options_warn (options, offset, GMIME_WARN_INVALID_PARAMETER, name);
g_free (value);
g_free (name);
diff --git a/gmime/gmime-parser-options.h b/gmime/gmime-parser-options.h
index ec5b5b3..4e5a747 100644
--- a/gmime/gmime-parser-options.h
+++ b/gmime/gmime-parser-options.h
@@ -48,6 +48,7 @@ typedef enum {
* @GMIME_WARN_UNENCODED_8BIT_HEADER: a header contains unencoded 8-bit characters
* @GMIME_WARN_INVALID_CONTENT_TYPE: invalid content type, assume `application/octet-stream`
* @GMIME_WARN_INVALID_RFC2047_HEADER_VALUE: invalid RFC 2047 encoded header value
+ * @GMIME_WARN_INVALID_PARAMETER: invalid header parameter
* @GMIME_WARN_MALFORMED_MULTIPART: no items in a `multipart/...`
* @GMIME_WARN_TRUNCATED_MESSAGE: the message is truncated
* @GMIME_WARN_MALFORMED_MESSAGE: the message is malformed
@@ -65,6 +66,7 @@ typedef enum {
GMIME_WARN_UNENCODED_8BIT_HEADER,
GMIME_WARN_INVALID_CONTENT_TYPE,
GMIME_WARN_INVALID_RFC2047_HEADER_VALUE,
+ GMIME_WARN_INVALID_PARAMETER,
GMIME_WARN_MALFORMED_MULTIPART,
GMIME_WARN_TRUNCATED_MESSAGE,
GMIME_WARN_MALFORMED_MESSAGE,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]