<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div><br>
</div>
<div>Hello Mitesh,</div>
<div><br>
</div>
<div>So this code actually just returns a paf verdict PAF<span style="font-style: italic; ">LIMIT and not PAF</span>FLUSH. This was added to handle boundaries split across packets (especially at the LF--). It shouldn't cause the flush of attachments with LF.
 Are you seeing this behavior?</div>
<div><br>
</div>
<div>Thanks! </div>
<div><br>
</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Mitesh Jadia <<a href="mailto:mitesh.jadia@...2499...">mitesh.jadia@...2499...</a>><br>
<span style="font-weight:bold">Date: </span>Tuesday, December 9, 2014 2:57 AM<br>
<span style="font-weight:bold">To: </span>"<a href="mailto:Snort-devel@lists.sourceforge.net">Snort-devel@lists.sourceforge.net</a>" <<a href="mailto:Snort-devel@lists.sourceforge.net">Snort-devel@...1656...rceforge.net</a>><br>
<span style="font-weight:bold">Subject: </span>[Snort-devel] Email mime part data_state reassembly problem<br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr">Hello,
<div><br>
</div>
<div>I found that when \n character found in mime data following mime header found in pop paf function flushes stream at that point.</div>
<div><br>
</div>
<div>scanning_boundary function is responsible for that.</div>
<div><br>
</div>
<div>
<div>static inline bool scanning_boundary(MimeDataPafInfo *mime_info, uint32_t boundary_start, uint32_t* fp)</div>
<div>{</div>
<div>    if (boundary_start &&</div>
<div>            mime_info->data_state == <b style="background-color:rgb(255,0,0)">
MIME_PAF_FOUND_BOUNDARY_STATE</b> &&</div>
<div>            mime_info->boundary_state != MIME_PAF_BOUNDARY_UNKNOWN)</div>
<div>    {</div>
<div>        *fp = boundary_start;</div>
<div>        return true;</div>
<div>    }</div>
<div><br>
</div>
<div>    return false;</div>
<div>}</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>current logic says that when \n is found (means mime->info.data_state = MIME_PAF_BOUNDARY_LF) then if condition will be true (other two conditions are also true in this case) and flush point will be set. Now it is possible that \n character can be there
 in attachment data.</div>
<div><br>
</div>
<div>As per my logic when all three characters '\n--' should be there before setting flush point by this condition. This solution will perform proper flushing by paf function. Also this problem may be in smtp and imap as scanning_boundary function is common
 for them.</div>
<div><br>
</div>
<div>Regards,</div>
<div>Mitesh Jadia</div>
<div><br>
</div>
</div>
</div>
</div>
</span>
</body>
</html>