suricata
util-decode-mime.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include "suricata.h"
#include "util-base64.h"
#include "util-debug.h"
Include dependency graph for util-decode-mime.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  MimeDecConfig
 Structure for containing configuration options. More...
 
struct  MimeDecField
 This represents a header field name and associated value. More...
 
struct  MimeDecUrl
 This represents a URL value node in a linked list. More...
 
struct  MimeDecEntity
 This represents the MIME Entity (or also top level message) in a child-sibling tree. More...
 
struct  MimeDecStackNode
 Structure contains boundary and entity for the current node (entity) in the stack. More...
 
struct  MimeDecStack
 Structure holds the top of the stack along with some free reusable nodes. More...
 
struct  DataValue
 Structure contains a list of value and lengths for robust data processing. More...
 
struct  MimeDecParseState
 Structure contains the current state of the MIME parser. More...
 

Macros

#define CTNT_IS_MSG   1
 
#define CTNT_IS_ENV   2
 
#define CTNT_IS_ENCAP   4
 
#define CTNT_IS_BODYPART   8
 
#define CTNT_IS_MULTIPART   16
 
#define CTNT_IS_ATTACHMENT   32
 
#define CTNT_IS_BASE64   64
 
#define CTNT_IS_QP   128
 
#define CTNT_IS_TEXT   256
 
#define CTNT_IS_HTML   512
 
#define URL_IS_IP4   1
 
#define URL_IS_IP6   2
 
#define URL_IS_EXE   4
 
#define ANOM_INVALID_BASE64   1 /* invalid base64 chars */
 
#define ANOM_INVALID_QP   2 /* invalid qouted-printable chars */
 
#define ANOM_LONG_HEADER_NAME   4 /* header is abnormally long */
 
#define ANOM_LONG_HEADER_VALUE
 
#define ANOM_LONG_LINE   16 /* Lines that exceed 998 octets */
 
#define ANOM_LONG_ENC_LINE   32 /* Lines that exceed 76 octets */
 
#define ANOM_MALFORMED_MSG   64 /* Misc msg format errors found */
 
#define ANOM_LONG_BOUNDARY   128 /* Boundary too long */
 
#define DATA_CHUNK_SIZE   3072 /* Should be divisible by 3 */
 
#define LINEREM_SIZE   256
 
#define HEADER_READY   0x01
 
#define HEADER_STARTED   0x02
 
#define HEADER_DONE   0x03
 
#define BODY_STARTED   0x04
 
#define BODY_DONE   0x05
 
#define BODY_END_BOUND   0x06
 
#define PARSE_DONE   0x07
 
#define PARSE_ERROR   0x08
 

Typedefs

typedef enum MimeDecRetCode MimeDecRetCode
 Mime Decoder Error Codes. More...
 
typedef struct MimeDecConfig MimeDecConfig
 Structure for containing configuration options. More...
 
typedef struct MimeDecField MimeDecField
 This represents a header field name and associated value. More...
 
typedef struct MimeDecUrl MimeDecUrl
 This represents a URL value node in a linked list. More...
 
typedef struct MimeDecEntity MimeDecEntity
 This represents the MIME Entity (or also top level message) in a child-sibling tree. More...
 
typedef struct MimeDecStackNode MimeDecStackNode
 Structure contains boundary and entity for the current node (entity) in the stack. More...
 
typedef struct MimeDecStack MimeDecStack
 Structure holds the top of the stack along with some free reusable nodes. More...
 
typedef struct DataValue DataValue
 Structure contains a list of value and lengths for robust data processing. More...
 
typedef struct MimeDecParseState MimeDecParseState
 Structure contains the current state of the MIME parser. More...
 

Enumerations

enum  MimeDecRetCode {
  MIME_DEC_OK = 0, MIME_DEC_MORE = 1, MIME_DEC_ERR_DATA = -1, MIME_DEC_ERR_MEM = -2,
  MIME_DEC_ERR_PARSE = -3, MIME_DEC_ERR_STATE = -4
}
 Mime Decoder Error Codes. More...
 

Functions

void MimeDecSetConfig (MimeDecConfig *config)
 Set global config policy. More...
 
MimeDecConfigMimeDecGetConfig (void)
 Get global config policy. More...
 
void MimeDecFreeEntity (MimeDecEntity *entity)
 Frees a mime entity tree. More...
 
void MimeDecFreeField (MimeDecField *field)
 Iteratively frees a header field entry list. More...
 
void MimeDecFreeUrl (MimeDecUrl *url)
 Iteratively frees a URL entry list. More...
 
MimeDecFieldMimeDecAddField (MimeDecEntity *entity)
 Creates and adds a header field entry to an entity. More...
 
MimeDecFieldMimeDecFindField (const MimeDecEntity *entity, const char *name)
 Searches for a header field with the specified name. More...
 
int MimeDecFindFieldsForEach (const MimeDecEntity *entity, const char *name, int(*DataCallback)(const uint8_t *val, const size_t, void *data), void *data)
 Searches for header fields with the specified name. More...
 
MimeDecEntityMimeDecAddEntity (MimeDecEntity *parent)
 Creates and adds a child entity to the specified parent entity. More...
 
MimeDecParseStateMimeDecInitParser (void *data, int(*dcpfunc)(const uint8_t *chunk, uint32_t len, MimeDecParseState *state))
 Init the parser by allocating memory for the state and top-level entity. More...
 
void MimeDecDeInitParser (MimeDecParseState *state)
 De-Init parser by freeing up any residual memory. More...
 
int MimeDecParseComplete (MimeDecParseState *state)
 Called to indicate that the last message line has been processed and the parsing operation is complete. More...
 
int MimeDecParseLine (const uint8_t *line, const uint32_t len, const uint8_t delim_len, MimeDecParseState *state)
 Parse a line of a MIME message and update the parser state. More...
 
MimeDecEntityMimeDecParseFullMsg (const uint8_t *buf, uint32_t blen, void *data, int(*DataChunkProcessorFunc)(const uint8_t *chunk, uint32_t len, MimeDecParseState *state))
 Parses an entire message when available in its entirety (wraps the line-based parsing functions) More...
 
const char * MimeDecParseStateGetStatus (MimeDecParseState *state)
 
void MimeDecRegisterTests (void)
 

Detailed Description

Macro Definition Documentation

#define ANOM_INVALID_BASE64   1 /* invalid base64 chars */

Definition at line 54 of file util-decode-mime.h.

Referenced by MimeDecAddEntity(), and SMTPProcessDataChunk().

#define ANOM_INVALID_QP   2 /* invalid qouted-printable chars */

Definition at line 55 of file util-decode-mime.h.

Referenced by MimeDecAddEntity(), and SMTPProcessDataChunk().

#define ANOM_LONG_BOUNDARY   128 /* Boundary too long */

Definition at line 62 of file util-decode-mime.h.

Referenced by MimeDecAddEntity(), and SMTPProcessDataChunk().

#define ANOM_LONG_ENC_LINE   32 /* Lines that exceed 76 octets */

Definition at line 60 of file util-decode-mime.h.

Referenced by MimeDecAddEntity(), and SMTPProcessDataChunk().

#define ANOM_LONG_HEADER_NAME   4 /* header is abnormally long */

Definition at line 56 of file util-decode-mime.h.

Referenced by MimeDecAddEntity(), and SMTPProcessDataChunk().

#define ANOM_LONG_HEADER_VALUE
Value:
8 /* header value is abnormally long
* (includes multi-line) */

Definition at line 57 of file util-decode-mime.h.

Referenced by MimeDecAddEntity(), and SMTPProcessDataChunk().

#define ANOM_LONG_LINE   16 /* Lines that exceed 998 octets */

Definition at line 59 of file util-decode-mime.h.

Referenced by MimeDecParseStateGetStatus(), and SMTPProcessDataChunk().

#define ANOM_MALFORMED_MSG   64 /* Misc msg format errors found */
#define BODY_DONE   0x05

Definition at line 73 of file util-decode-mime.h.

#define BODY_END_BOUND   0x06

Definition at line 74 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

#define BODY_STARTED   0x04

Definition at line 72 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

#define CTNT_IS_ATTACHMENT   32

Definition at line 42 of file util-decode-mime.h.

Referenced by MimeDecAddEntity(), SMTPParserCleanup(), and SMTPProcessDataChunk().

#define CTNT_IS_BASE64   64

Definition at line 43 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

#define CTNT_IS_BODYPART   8

Definition at line 40 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

#define CTNT_IS_ENCAP   4

Definition at line 39 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

#define CTNT_IS_ENV   2

Definition at line 38 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

#define CTNT_IS_HTML   512

Definition at line 46 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

#define CTNT_IS_MSG   1

Definition at line 37 of file util-decode-mime.h.

Referenced by MimeDecAddEntity(), and MimeDecInitParser().

#define CTNT_IS_MULTIPART   16

Definition at line 41 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

#define CTNT_IS_QP   128

Definition at line 44 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

#define CTNT_IS_TEXT   256

Definition at line 45 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

#define DATA_CHUNK_SIZE   3072 /* Should be divisible by 3 */

Definition at line 65 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

#define HEADER_DONE   0x03

Definition at line 71 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

#define HEADER_READY   0x01
#define HEADER_STARTED   0x02

Definition at line 70 of file util-decode-mime.h.

Referenced by MimeDecAddEntity(), and MimeDecParseStateGetStatus().

#define LINEREM_SIZE   256

Definition at line 66 of file util-decode-mime.h.

#define PARSE_DONE   0x07

Definition at line 75 of file util-decode-mime.h.

Referenced by MimeDecParseComplete().

#define PARSE_ERROR   0x08
#define URL_IS_EXE   4

Definition at line 51 of file util-decode-mime.h.

Referenced by MimeDecAddEntity(), and MimeDecParseFullMsg().

#define URL_IS_IP4   1

Definition at line 49 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

#define URL_IS_IP6   2

Definition at line 50 of file util-decode-mime.h.

Referenced by MimeDecAddEntity().

Typedef Documentation

typedef struct DataValue DataValue

Structure contains a list of value and lengths for robust data processing.

typedef struct MimeDecConfig MimeDecConfig

Structure for containing configuration options.

typedef struct MimeDecEntity MimeDecEntity

This represents the MIME Entity (or also top level message) in a child-sibling tree.

typedef struct MimeDecField MimeDecField

This represents a header field name and associated value.

Structure contains the current state of the MIME parser.

Mime Decoder Error Codes.

typedef struct MimeDecStack MimeDecStack

Structure holds the top of the stack along with some free reusable nodes.

Structure contains boundary and entity for the current node (entity) in the stack.

typedef struct MimeDecUrl MimeDecUrl

This represents a URL value node in a linked list.

Since HTML can sometimes contain a high number of URLs, this structure only features the URL host name/IP or those that are pointing to an executable file (see url_flags to determine which).

Enumeration Type Documentation

Mime Decoder Error Codes.

Enumerator
MIME_DEC_OK 
MIME_DEC_MORE 
MIME_DEC_ERR_DATA 
MIME_DEC_ERR_MEM 
MIME_DEC_ERR_PARSE 
MIME_DEC_ERR_STATE 

parser in error state

Definition at line 81 of file util-decode-mime.h.

Function Documentation

MimeDecEntity* MimeDecAddEntity ( MimeDecEntity parent)

Creates and adds a child entity to the specified parent entity.

Parameters
parentThe parent entity
Returns
The child entity, or NULL if the operation fails

Definition at line 398 of file util-decode-mime.c.

References ANOM_INVALID_BASE64, ANOM_INVALID_QP, ANOM_LONG_BOUNDARY, ANOM_LONG_ENC_LINE, ANOM_LONG_HEADER_NAME, ANOM_LONG_HEADER_VALUE, MimeDecEntity::anomaly_flags, ASCII_BLOCK, B64_BLOCK, BASE64_STR, BasicSearchNocase(), MimeDecStackNode::bdef, MimeDecStackNode::bdef_len, BND_START_STR, MimeDecParseState::body_begin, MimeDecParseState::body_end, BODY_END_BOUND, MimeDecEntity::body_len, BODY_STARTED, BOUNDARY_BUF, MimeDecParseState::bvr_len, MimeDecParseState::bvremain, MimeDecEntity::child, COLON, CR, CRLF, CTNT_DISP_STR, MimeDecEntity::ctnt_flags, CTNT_IS_ATTACHMENT, CTNT_IS_BASE64, CTNT_IS_BODYPART, CTNT_IS_ENCAP, CTNT_IS_ENV, CTNT_IS_HTML, CTNT_IS_MSG, CTNT_IS_MULTIPART, CTNT_IS_QP, CTNT_IS_TEXT, CTNT_TRAN_STR, MimeDecEntity::ctnt_type, MimeDecEntity::ctnt_type_len, CTNT_TYPE_STR, MimeDecParseState::current_line_delimiter_len, DASH, MimeDecStackNode::data, MimeDecParseState::data_chunk, MimeDecParseState::data_chunk_len, DATA_CHUNK_SIZE, MimeDecParseState::DataChunkProcessorFunc, MimeDecConfig::decode_base64, MimeDecConfig::decode_quoted_printable, DecodeBase64(), MimeDecEntity::decoded_body_len, EOL_LEN, MimeDecConfig::extract_urls, MimeDecEntity::filename, MimeDecEntity::filename_len, MimeDecParseState::found_child, MimeDecStack::free_nodes, MimeDecStack::free_nodes_cnt, HEADER_DONE, HEADER_READY, HEADER_STARTED, MimeDecConfig::header_value_depth, MimeDecParseState::hlen, MimeDecParseState::hname, HTML_STR, MimeDecParseState::hvalue, MimeDecParseState::hvlen, IPv4AddressStringIsValid(), IPv6AddressStringIsValid(), MimeDecStackNode::is_encap, len, LF, MimeDecParseState::linerem_len, MAX_ENC_LINE_LEN, MAX_HEADER_NAME, MAX_IP4_CHARS, MAX_IP6_CHARS, MIME_DEC_ERR_DATA, MIME_DEC_ERR_MEM, MIME_DEC_ERR_PARSE, MIME_DEC_OK, MimeDecAddEntity(), MimeDecAddField(), MimeDecFindField(), MimeDecGetConfig(), MimeDecParseState::msg, MimeDecEntity::msg_id, MimeDecEntity::msg_id_len, MSG_ID_STR, MSG_STR, MULTIPART_STR, MimeDecField::name, MimeDecField::name_len, MimeDecUrl::next, MimeDecEntity::next, MimeDecStackNode::next, DataValue::next, offset, PRINTABLE_END, PRINTABLE_START, QP_STR, res, SC_ERR_MEM_ALLOC, SC_LOG_DEBUG, SCCalloc, SCFree, SCLogDebug, SCLogError, SCMalloc, SCMemcmp, src, MimeDecParseState::stack, STACK_FREE_NODES, MimeDecParseState::state_flag, Asn1Generic_::strlen, TOK_END_STR, MimeDecStack::top, TXT_STR, unlikely, MimeDecUrl::url, URL_IS_EXE, URL_IS_IP4, URL_IS_IP6, MimeDecUrl::url_len, MimeDecEntity::url_list, URL_STR, Asn1Generic_::value, MimeDecField::value, DataValue::value, MimeDecField::value_len, and DataValue::value_len.

Referenced by MimeDecAddEntity().

Here is the call graph for this function:

Here is the caller graph for this function:

MimeDecField* MimeDecAddField ( MimeDecEntity entity)

Creates and adds a header field entry to an entity.

The entity is optional. If NULL is specified, than a new stand-alone field is created.

Parameters
entityThe parent entity
Returns
The field object, or NULL if the operation fails

Definition at line 278 of file util-decode-mime.c.

References MimeDecEntity::field_list, MimeDecField::next, SC_ERR_MEM_ALLOC, SCLogError, SCMalloc, and unlikely.

Referenced by MimeDecAddEntity().

Here is the caller graph for this function:

void MimeDecDeInitParser ( MimeDecParseState state)

De-Init parser by freeing up any residual memory.

Parameters
stateThe parser state
Returns
none

Definition at line 2441 of file util-decode-mime.c.

References ANOM_MALFORMED_MSG, MimeDecEntity::anomaly_flags, MimeDecStackNode::data, MimeDecParseState::hname, MimeDecParseState::hvalue, MimeDecParseState::msg, SCFree, SCLogDebug, MimeDecParseState::stack, and MimeDecStack::top.

Referenced by MimeDecParseFullMsg(), and SMTPStateAlloc().

Here is the caller graph for this function:

MimeDecField* MimeDecFindField ( const MimeDecEntity entity,
const char *  name 
)

Searches for a header field with the specified name.

Parameters
entityThe entity to search
nameThe header name (lowercase)
Returns
The field object, or NULL if not found

Definition at line 338 of file util-decode-mime.c.

References MimeDecEntity::field_list, flags, MimeDecField::name, MimeDecField::name_len, MimeDecField::next, MimeDecUrl::next, SC_ERR_MEM_ALLOC, SCLogError, SCMalloc, SCMemcmp, Asn1Generic_::strlen, unlikely, MimeDecUrl::url, MimeDecUrl::url_flags, MimeDecUrl::url_len, and MimeDecEntity::url_list.

Referenced by MimeDecAddEntity(), and MimeDecParseFullMsg().

Here is the caller graph for this function:

int MimeDecFindFieldsForEach ( const MimeDecEntity entity,
const char *  name,
int(*)(const uint8_t *val, const size_t, void *data)  DataCallback,
void *  data 
)

Searches for header fields with the specified name.

Parameters
entityThe entity to search
nameThe header name (lowercase)
Returns
number of items found

Definition at line 310 of file util-decode-mime.c.

References MimeDecEntity::field_list, MimeDecField::name, MimeDecField::name_len, MimeDecField::next, SCMemcmp, Asn1Generic_::strlen, MimeDecField::value, and MimeDecField::value_len.

void MimeDecFreeEntity ( MimeDecEntity entity)

Frees a mime entity tree.

Parameters
entityThe root entity
Returns
none

Move child to next Transform tree into list

Move to next element

Definition at line 181 of file util-decode-mime.c.

References MimeDecEntity::child, MimeDecEntity::field_list, MimeDecEntity::filename, MimeDecFreeField(), MimeDecFreeUrl(), MimeDecEntity::next, SCFree, and MimeDecEntity::url_list.

Referenced by MimeDecParseFullMsg(), and SMTPStateAlloc().

Here is the call graph for this function:

Here is the caller graph for this function:

void MimeDecFreeField ( MimeDecField field)

Iteratively frees a header field entry list.

Parameters
fieldThe header field
Returns
none

Definition at line 220 of file util-decode-mime.c.

References MimeDecField::name, MimeDecField::next, SCFree, and MimeDecField::value.

Referenced by MimeDecFreeEntity().

Here is the caller graph for this function:

void MimeDecFreeUrl ( MimeDecUrl url)

Iteratively frees a URL entry list.

Parameters
urlThe url entry
Returns
none

Definition at line 249 of file util-decode-mime.c.

References MimeDecUrl::next, SCFree, and MimeDecUrl::url.

Referenced by MimeDecFreeEntity().

Here is the caller graph for this function:

MimeDecConfig* MimeDecGetConfig ( void  )

Get global config policy.

Returns
config data structure

Definition at line 151 of file util-decode-mime.c.

References MimeDecEntity::next.

Referenced by MimeDecAddEntity(), and MimeDecParseFullMsg().

Here is the caller graph for this function:

MimeDecParseState* MimeDecInitParser ( void *  data,
int(*)(const uint8_t *chunk, uint32_t len, MimeDecParseState *state)  DataChunkProcessorFunc 
)

Init the parser by allocating memory for the state and top-level entity.

Parameters
dataA caller-specified pointer to data for access within the data chunk processor callback function
dcpfuncThe data chunk processor callback function
Returns
A pointer to the state object, or NULL if the operation fails

Definition at line 2385 of file util-decode-mime.c.

References MimeDecEntity::ctnt_flags, CTNT_IS_MSG, MimeDecStackNode::data, MimeDecParseState::data, MimeDecParseState::DataChunkProcessorFunc, HEADER_READY, MimeDecParseState::msg, SC_ERR_MEM_ALLOC, SCFree, SCLogError, SCMalloc, MimeDecParseState::stack, MimeDecParseState::state_flag, MimeDecStack::top, and unlikely.

Referenced by MimeDecParseFullMsg(), SMTPParserCleanup(), and SMTPProcessDataChunk().

Here is the caller graph for this function:

int MimeDecParseComplete ( MimeDecParseState state)

Called to indicate that the last message line has been processed and the parsing operation is complete.

This function should be called directly by the caller.

Parameters
stateThe parser state
Returns
MIME_DEC_OK on success, otherwise < 0 on failure

Definition at line 2479 of file util-decode-mime.c.

References ANOM_MALFORMED_MSG, MimeDecEntity::anomaly_flags, MimeDecStackNode::is_encap, MIME_DEC_ERR_DATA, MIME_DEC_ERR_STATE, MIME_DEC_OK, MimeDecParseState::msg, MimeDecStackNode::next, PARSE_DONE, PARSE_ERROR, SCLogDebug, MimeDecParseState::stack, MimeDecParseState::state_flag, and MimeDecStack::top.

Referenced by MimeDecParseFullMsg(), and SMTPProcessDataChunk().

Here is the caller graph for this function:

MimeDecEntity* MimeDecParseFullMsg ( const uint8_t *  buf,
uint32_t  blen,
void *  data,
int(*)(const uint8_t *chunk, uint32_t len, MimeDecParseState *state)  dcpfunc 
)

Parses an entire message when available in its entirety (wraps the line-based parsing functions)

Parameters
bufBuffer pointing to the full message
blenLength of the buffer
dataCaller data to be available in callback
dcpfuncCallback for processing each decoded body data chunk
Returns
A pointer to the decoded MIME message, or NULL if the operation fails

Definition at line 2575 of file util-decode-mime.c.

References MimeDecParseState::body_begin, MimeDecParseState::body_end, BUG_ON, MimeDecEntity::child, MimeDecParseState::current_line_delimiter_len, MimeDecParseState::data, MimeDecConfig::decode_base64, MimeDecConfig::decode_quoted_printable, DecodeBase64(), dst, MimeDecConfig::extract_urls, MIME_DEC_OK, MimeDecDeInitParser(), MimeDecFindField(), MimeDecFreeEntity(), MimeDecGetConfig(), MimeDecInitParser(), MimeDecParseComplete(), MimeDecParseFullMsg(), MimeDecParseLine(), MimeDecParseState::msg, msg, MimeDecEntity::next, PASS, SC_LOG_DEBUG, SCFree, SCLogDebug, SCLogInfo, SCMalloc, str, TEST, MimeDecUrl::url_flags, URL_IS_EXE, MimeDecEntity::url_list, MimeDecField::value, and MimeDecField::value_len.

Referenced by MimeDecParseFullMsg().

Here is the call graph for this function:

Here is the caller graph for this function:

int MimeDecParseLine ( const uint8_t *  line,
const uint32_t  len,
const uint8_t  delim_len,
MimeDecParseState state 
)

Parse a line of a MIME message and update the parser state.

Parameters
lineA string representing the line (w/out CRLF)
lenThe length of the line
delim_lenThe length of the line end delimiter
stateThe parser state
Returns
MIME_DEC_OK on success, otherwise < 0 on failure

Definition at line 2541 of file util-decode-mime.c.

References MimeDecParseState::current_line_delimiter_len, MIME_DEC_OK, PARSE_ERROR, SC_LOG_DEBUG, SCLogDebug, and MimeDecParseState::state_flag.

Referenced by MimeDecParseFullMsg(), and SMTPProcessDataChunk().

Here is the caller graph for this function:

void MimeDecRegisterTests ( void  )

Definition at line 3040 of file util-decode-mime.c.

References UtRegisterTest().

Here is the call graph for this function:

void MimeDecSetConfig ( MimeDecConfig config)

Set global config policy.

Parameters
configConfig policy to set
Returns
none

Definition at line 132 of file util-decode-mime.c.

References MimeDecConfig::header_value_depth, MAX_HEADER_VALUE, SC_ERR_MISSING_CONFIG_PARAM, and SCLogWarning.

Referenced by SMTPParserCleanup().

Here is the caller graph for this function: