dcerpc: don't exit() on malloc failure

In 2 places we would exit() if malloc failed. We should never exit in
such cases. This patch silently handles it.
pull/1346/head
Victor Julien 11 years ago
parent 5cd7bb2f14
commit 647985d20d

@ -692,17 +692,14 @@ static uint32_t DCERPCParseBINDACKCTXItem(DCERPC *dcerpc, uint8_t *input, uint32
dcerpc->dcerpcbindbindack.uuid_entry = (DCERPCUuidEntry *) dcerpc->dcerpcbindbindack.uuid_entry = (DCERPCUuidEntry *)
SCCalloc(1, sizeof(DCERPCUuidEntry)); SCCalloc(1, sizeof(DCERPCUuidEntry));
if (dcerpc->dcerpcbindbindack.uuid_entry == NULL) { if (dcerpc->dcerpcbindbindack.uuid_entry != NULL) {
SCLogError(SC_ERR_MEM_ALLOC, memcpy(dcerpc->dcerpcbindbindack.uuid_entry,
"Error allocating memory\n"); uuid_entry,
exit(EXIT_FAILURE); sizeof(DCERPCUuidEntry));
TAILQ_INSERT_HEAD(&dcerpc->dcerpcbindbindack.accepted_uuid_list,
dcerpc->dcerpcbindbindack.uuid_entry,
next);
} }
memcpy(dcerpc->dcerpcbindbindack.uuid_entry,
uuid_entry,
sizeof(DCERPCUuidEntry));
TAILQ_INSERT_HEAD(&dcerpc->dcerpcbindbindack.accepted_uuid_list,
dcerpc->dcerpcbindbindack.uuid_entry,
next);
break; break;
} }
} }
@ -851,17 +848,14 @@ static uint32_t DCERPCParseBINDACKCTXItem(DCERPC *dcerpc, uint8_t *input, uint32
dcerpc->dcerpcbindbindack.uuid_entry = (DCERPCUuidEntry *) dcerpc->dcerpcbindbindack.uuid_entry = (DCERPCUuidEntry *)
SCCalloc(1, sizeof(DCERPCUuidEntry)); SCCalloc(1, sizeof(DCERPCUuidEntry));
if (dcerpc->dcerpcbindbindack.uuid_entry == NULL) { if (dcerpc->dcerpcbindbindack.uuid_entry != NULL) {
SCLogError(SC_ERR_MEM_ALLOC, memcpy(dcerpc->dcerpcbindbindack.uuid_entry,
"Error allocating memory\n"); uuid_entry,
exit(EXIT_FAILURE); sizeof(DCERPCUuidEntry));
TAILQ_INSERT_HEAD(&dcerpc->dcerpcbindbindack.accepted_uuid_list,
dcerpc->dcerpcbindbindack.uuid_entry,
next);
} }
memcpy(dcerpc->dcerpcbindbindack.uuid_entry,
uuid_entry,
sizeof(DCERPCUuidEntry));
TAILQ_INSERT_HEAD(&dcerpc->dcerpcbindbindack.accepted_uuid_list,
dcerpc->dcerpcbindbindack.uuid_entry,
next);
break; break;
} }
} }

Loading…
Cancel
Save