@@ -259,6 +259,7 @@ int InsertNetmask(TreeNode *node, TreeNode *parent, TreeNode *new_node,
259259
260260 node->count ++;
261261 node->netmasks = reinterpret_cast <unsigned char *>(malloc (node->count * sizeof (unsigned char )));
262+ memset (node->netmasks , 0 , (node->count * sizeof (unsigned char )));
262263
263264 if (node->netmasks == NULL )
264265 return 0 ;
@@ -410,6 +411,7 @@ TreeNode *CPTAddElement(unsigned char *ipdata, unsigned int ip_bitmask, CPTTree
410411 node->count ++;
411412 new_node = node;
412413 node->netmasks = reinterpret_cast <unsigned char *>(malloc (node->count * sizeof (unsigned char )));
414+ memset (node->netmasks , 0 , (node->count * sizeof (unsigned char )));
413415
414416 if ((node->count -1 ) == 0 ) {
415417 node->netmasks [0 ] = netmask;
@@ -418,16 +420,16 @@ TreeNode *CPTAddElement(unsigned char *ipdata, unsigned int ip_bitmask, CPTTree
418420
419421 node->netmasks [node->count - 1 ] = netmask;
420422
421- i = node->count - 2 ;
422- while (i >= 0 ) {
423- if (netmask < node->netmasks [i ]) {
424- node->netmasks [i + 1 ] = netmask;
423+ int index = node->count - 2 ;
424+ while (index >= 0 ) {
425+ if (netmask < node->netmasks [index ]) {
426+ node->netmasks [index + 1 ] = netmask;
425427 break ;
426428 }
427429
428- node->netmasks [i + 1 ] = node->netmasks [i ];
429- node->netmasks [i ] = netmask;
430- i --;
430+ node->netmasks [index + 1 ] = node->netmasks [index ];
431+ node->netmasks [index ] = netmask;
432+ index --;
431433 }
432434 }
433435 } else {
@@ -481,6 +483,7 @@ TreeNode *CPTAddElement(unsigned char *ipdata, unsigned int ip_bitmask, CPTTree
481483 }
482484
483485 i_node->netmasks = reinterpret_cast <unsigned char *>(malloc ((node->count - i) * sizeof (unsigned char )));
486+ memset (i_node->netmasks , 0 , ((node->count - i) * sizeof (unsigned char )));
484487
485488 if (i_node->netmasks == NULL ) {
486489 free (new_node->prefix );
0 commit comments