diff -upr linux-2.6.18-rhel5-028stab038.1/net/ipv4/fib_hash.c linux-2.6.18-rhel5-028stab038.1-new/net/ipv4/fib_hash.c --- linux-2.6.18-rhel5-028stab038.1/net/ipv4/fib_hash.c 2007-07-24 15:21:56.000000000 +0400 +++ linux-2.6.18-rhel5-028stab038.1-new/net/ipv4/fib_hash.c 2007-07-23 18:03:48.000000000 +0400 @@ -715,6 +715,7 @@ int init_ve_route(struct ve_struct *ve) ve->_main_table = fib_hash_init(RT_TABLE_MAIN); if (!ve->_main_table) { fib_hash_destroy(ve->_local_table); + ve->_local_table = NULL; return -ENOMEM; } @@ -734,6 +735,7 @@ void fini_ve_route(struct ve_struct *ve) #else fib_hash_destroy(ve->_local_table); fib_hash_destroy(ve->_main_table); + ve->_local_table = ve->_main_table = NULL; #endif bytes = ve->_fib_hash_size * sizeof(struct hlist_head *); fib_hash_free(ve->_fib_info_hash, bytes); diff -upr linux-2.6.18-rhel5-028stab038.1/net/ipv4/fib_rules.c linux-2.6.18-rhel5-028stab038.1-new/net/ipv4/fib_rules.c --- linux-2.6.18-rhel5-028stab038.1/net/ipv4/fib_rules.c 2007-07-24 15:21:56.000000000 +0400 +++ linux-2.6.18-rhel5-028stab038.1-new/net/ipv4/fib_rules.c 2007-07-24 09:59:23.000000000 +0400 @@ -155,6 +155,7 @@ void fib_rules_destroy(void) fib_rule_put(r); } rtnl_unlock(); + get_exec_env()->_local_rule = NULL; #endif } #endif