Exemplo n.º 1
0
/* Free the loginfo structure */
void Free_Eventinfo(Eventinfo *lf)
{
    if (!lf) {
        merror("%s: Trying to free NULL event. Inconsistent..", ARGV0);
        return;
    }

    if (lf->comment)
        free(lf->comment);

    if (lf->full_log) {
        free(lf->full_log);
    }

    if (lf->agent_id) {
        free(lf->agent_id);
    }

    if (lf->location) {
        free(lf->location);
    }

    if (lf->srcip) {
        free(lf->srcip);
    }

    if(lf->srcgeoip) {
        free(lf->srcgeoip);
        lf->srcgeoip = NULL;
    }

    if (lf->dstip) {
        free(lf->dstip);
    }

    if(lf->dstgeoip) {
        free(lf->dstgeoip);
        lf->dstgeoip = NULL;
    }

    if (lf->srcport) {
        free(lf->srcport);
    }
    if (lf->dstport) {
        free(lf->dstport);
    }
    if (lf->protocol) {
        free(lf->protocol);
    }
    if (lf->action) {
        free(lf->action);
    }
    if (lf->status) {
        free(lf->status);
    }
    if (lf->srcuser) {
        free(lf->srcuser);
    }
    if (lf->dstuser) {
        free(lf->dstuser);
    }
    if (lf->id) {
        free(lf->id);
    }
    if (lf->command) {
        free(lf->command);
    }
    if (lf->url) {
        free(lf->url);
    }

    if (lf->data) {
        free(lf->data);
    }
    if (lf->systemname) {
        free(lf->systemname);
    }

    if (lf->fields) {
        int i;
        for (i = 0; i < lf->nfields; i++)
            free(lf->fields[i].value);

        free(lf->fields);
    }

    if (lf->filename) {
        free(lf->filename);
    }
    if (lf->md5_before) {
        free(lf->md5_before);
    }
    if (lf->md5_after) {
        free(lf->md5_after);
    }
    if (lf->sha1_before) {
        free(lf->sha1_before);
    }
    if (lf->sha1_after) {
        free(lf->sha1_after);
    }
    if (lf->size_before) {
        free(lf->size_before);
    }
    if (lf->size_after) {
        free(lf->size_after);
    }
    if (lf->owner_before) {
        free(lf->owner_before);
    }
    if (lf->owner_after) {
        free(lf->owner_after);
    }
    if (lf->gowner_before) {
        free(lf->gowner_before);
    }
    if (lf->gowner_after) {
        free(lf->gowner_after);
    }
    if (lf->uname_before) {
        free(lf->uname_before);
    }
    if (lf->uname_after) {
        free(lf->uname_after);
    }
    if (lf->gname_before) {
        free(lf->gname_before);
    }
    if (lf->gname_after) {
        free(lf->gname_after);
    }
    if (lf->diff) {
        free(lf->diff);
    }

    /* Free node to delete */
    if (lf->sid_node_to_delete) {
        OSList_DeleteThisNode(lf->generated_rule->sid_prev_matched,
                              lf->sid_node_to_delete);
    } else if (lf->generated_rule && lf->generated_rule->group_prev_matched) {
        unsigned int i = 0;

        while (i < lf->generated_rule->group_prev_matched_sz) {
            OSList_DeleteOldestNode(lf->generated_rule->group_prev_matched[i]);
            i++;
        }
    }

    /* We dont need to free:
     * fts
     * comment
     */
    free(lf);
    lf = NULL;

    return;
}
Exemplo n.º 2
0
/* Free the loginfo structure */
void Free_Eventinfo(Eventinfo *lf)
{
    if(!lf)
    {
        merror("%s: Trying to free NULL event. Inconsistent..",ARGV0);
        return;
    }
    
    if(lf->full_log)
        free(lf->full_log);    
    if(lf->location)
        free(lf->location);    

    if(lf->srcip)
        free(lf->srcip);
    if(lf->dstip)
        free(lf->dstip);
    if(lf->srcport)
        free(lf->srcport);
    if(lf->dstport)
        free(lf->dstport);
    if(lf->protocol)
        free(lf->protocol);
    if(lf->action)
        free(lf->action);            
    if(lf->status)
        free(lf->status);
    if(lf->srcuser)
        free(lf->srcuser);
    if(lf->dstuser)
        free(lf->dstuser);    
    if(lf->id)
        free(lf->id);
    if(lf->command)
        free(lf->command);
    if(lf->url)
        free(lf->url);

    if(lf->data)
        free(lf->data);    
    if(lf->systemname)
        free(lf->systemname);    

    #ifdef PRELUDE
    if(lf->filename)
        free(lf->filename);
    if (lf->md5_before)
        free(lf->md5_before);                 
    if (lf->md5_after)
        free(lf->md5_after);               
    if (lf->sha1_before)
        free(lf->sha1_before);       
    if (lf->sha1_after)
        free(lf->sha1_after);                 
    if (lf->size_before)
        free(lf->size_before);       
    if (lf->size_after)
        free(lf->size_after);        
    if (lf->owner_before)
        free(lf->owner_before);      
    if (lf->owner_after)
        free(lf->owner_after);       
    if (lf->gowner_before)
        free(lf->gowner_before); 
    if (lf->gowner_after)
        free(lf->gowner_after);  
    #endif

    /* Freeing node to delete */
    if(lf->sid_node_to_delete)
    {
        OSList_DeleteThisNode(lf->generated_rule->sid_prev_matched, 
                              lf->sid_node_to_delete);
    }
    else if(lf->generated_rule && lf->generated_rule->group_prev_matched)
    {
        int i = 0;

        while(i < lf->generated_rule->group_prev_matched_sz)
        {
            OSList_DeleteOldestNode(lf->generated_rule->group_prev_matched[i]);
            i++;
        } 
    }
    
    /* We dont need to free:
     * fts
     * comment
     */
    free(lf);
    lf = NULL; 
    
    return;
}