Browse Source

Limit shifting in s24s cleanup code to a non-overflowing size

dynamic-accesslists
erdgeist 15 years ago
parent
commit
517adde681
  1. 4
      ot_stats.c

4
ot_stats.c

@ -111,7 +111,7 @@ static int stats_shift_down_network_count( stats_network_node **node, int depth,
depth += STATS_NETWORK_NODE_BITWIDTH; depth += STATS_NETWORK_NODE_BITWIDTH;
if( depth == STATS_NETWORK_NODE_MAXDEPTH ) { if( depth == STATS_NETWORK_NODE_MAXDEPTH ) {
for( i=0; i<STATS_NETWORK_NODE_COUNT; ++i ) for( i=0; i<STATS_NETWORK_NODE_COUNT; ++i )
rest += ((*node)->counters[i]>>=shift); rest += (*node)->counters[i] >>= shift;
return rest; return rest;
} }
@ -276,7 +276,7 @@ bailout_unlock:
bailout_error: bailout_error:
r = reply; r = reply;
success: success:
stats_shift_down_network_count( &slash24s_network_counters_root, 0, STATS_NETWORK_NODE_MAXDEPTH*STATS_NETWORK_NODE_BITWIDTH ); stats_shift_down_network_count( &slash24s_network_counters_root, 0, sizeof(int)*8-1 );
if( slash24s_network_counters_root ) if( slash24s_network_counters_root )
free( slash24s_network_counters_root ); free( slash24s_network_counters_root );
return r-reply; return r-reply;

Loading…
Cancel
Save