<div dir="ltr"><div><div><div>When pruning, the function Active_Suspend() gets called and alerts generated during this time, when the sensor is in inline mode, are marked as "Would Have Dropped".  I am assuming that such events are ones that are in the session that is being pruned.<br><br>When the pruning is done, the function Active_Resume() is called.  However, there is one case where that doesn't happen.  Here is the code (<span style="font-family:monospace,monospace">src/preprocessors/spp_session.c</span>):<br><font size="1"><span style="font-family:monospace,monospace"><br>static int pruneSessionCache( void *sessionCache, uint32_t thetime, void *save_me_session, int memCheck )<br>{<br>    SessionControlBlock *save_me = ( SessionControlBlock  * ) save_me_session;<br>    SessionCache *session_cache = ( SessionCache * ) sessionCache;<br>    SessionControlBlock *scb;<br>    uint32_t pruned = 0;<br><br>    <b>Active_Suspend();</b><br><br>    if( thetime != 0 )<br>    {<br>        /* Pruning, look for sessions that have time'd out */<br>        bool got_one;<br>        scb = ( SessionControlBlock * ) sfxhash_lru( session_cache->hashTable );<br><br>        if( scb == NULL )<br>            <span style="background-color:rgb(255,255,0)">return 0;</span></span></font><br><br></div> I think there should be this line before the highlighted "return 0;":<br><br><b><font size="1"><span style="font-family:monospace,monospace">Active_Resume();</span></font></b><br><br>In fact if you look at earlier Snort versions like 2.9.6, it is there.  It looks like it was changed in 2.9.7.  Was there a good reason that it was removed or does it make sense to put it back?  Please let me know since I plan on making the change and rebuilding Snort for all my boxes.<br><br>Usually, at least I think, the scb shouldn't be NULL but if it is, the sensor is stuck in Active_Suspend until prunes happen again.<br><br></div>Thanks.<br><br></div>-Mike Cox<br></div>