Esempio n. 1
0
ReferenceNode * AddReference(Barnyard2Config *bc, ReferenceNode **head, char *system, char *id)
{
    ReferenceNode *node;

    if ((system == NULL) || (id == NULL) ||
        (bc == NULL) || (head == NULL))
    {
        return NULL;
    }

    /* create the new node */
    node = (ReferenceNode *)SnortAlloc(sizeof(ReferenceNode));
    
    /* lookup the reference system */
    node->system = ReferenceSystemLookup(bc->references, system);
    if (node->system == NULL)
        node->system = ReferenceSystemAdd(&bc->references, system, NULL);

    node->id = SnortStrdup(id);
    
    /* Add the node to the front of the list */
    node->next = *head;
    *head = node;
    
    return node;
}
Esempio n. 2
0
ReferenceNode *AddReference(ReferenceNode *rn, char *system, char *id)
{
    ReferenceNode *newNode;

    if(system == NULL || id == NULL)
    {
        ErrorMessage("NULL reference argument\n");
        return rn;
    }
    
    /* create the new node */
    if(!(newNode = (ReferenceNode *)malloc(sizeof(ReferenceNode))))
    {
        FatalError("Out of memory in AddReference\n");
    }
    memset(newNode, 0, sizeof(ReferenceNode));
    
    /* lookup the reference system */
    if(!(newNode->system = ReferenceSystemLookup(system)))
    {
        newNode->system = ReferenceSystemAdd(system, NULL);
    }
    newNode->id = strdup(id);
    
    /* add the node to the list */
    newNode->next = rn;
    
    return newNode;
}