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; }
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; }