fix: malloc checks at msc_tree

This commit is contained in:
Burkov Egor 2025-07-29 15:24:59 +03:00
parent 08b70e006b
commit dc42619c66

View File

@ -419,6 +419,9 @@ TreeNode *CPTAddElement(unsigned char *ipdata, unsigned int ip_bitmask, CPTTree
node->count++;
new_node = node;
node->netmasks = reinterpret_cast<unsigned char *>(malloc(node->count * sizeof(unsigned char)));
if (node->netmasks == NULL) {
return node;
}
memset(node->netmasks, 0, (node->count * sizeof(unsigned char)));
if ((node->count -1) == 0) {
@ -491,8 +494,6 @@ TreeNode *CPTAddElement(unsigned char *ipdata, unsigned int ip_bitmask, CPTTree
}
i_node->netmasks = reinterpret_cast<unsigned char *>(malloc((node->count - i) * sizeof(unsigned char)));
memset(i_node->netmasks, 0, ((node->count - i) * sizeof(unsigned char)));
if(i_node->netmasks == NULL) {
free(new_node->prefix);
free(new_node);
@ -500,6 +501,8 @@ TreeNode *CPTAddElement(unsigned char *ipdata, unsigned int ip_bitmask, CPTTree
return NULL;
}
memset(i_node->netmasks, 0, ((node->count - i) * sizeof(unsigned char)));
j = 0;
while (j < (node->count - i)) {
i_node->netmasks[j] = node->netmasks[i + j];