summaryrefslogtreecommitdiffstats
path: root/ctdb/lib/util/debug.h
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2010-07-26 13:58:48 +0930
committerRusty Russell <rusty@rustcorp.com.au>2010-08-18 11:40:17 +0930
commit1a009aff73cd3fa0e9653c35581283bd4de614e3 (patch)
tree9632a9f5ea6e7c724b464c9db7c20809aa77967c /ctdb/lib/util/debug.h
parent6ce1501aa1f611fe9b6739ec446e10225b4e5d49 (diff)
downloadsamba-1a009aff73cd3fa0e9653c35581283bd4de614e3.tar.gz
samba-1a009aff73cd3fa0e9653c35581283bd4de614e3.tar.xz
samba-1a009aff73cd3fa0e9653c35581283bd4de614e3.zip
takeover: prevent crash by avoiding free in traverse on RST timeout
After 5 attempts to send a RST to a client without any response, we free "con"; this is done during a traverse. This frees the node we are walking through (the node is made a child of "con" down in rb_tree.c's trbt_create_node() (Valgrind would catch this, as Martin confirmed). So, we create a temporary parent and reparent onto that; then we free that parent after the traverse, thus deleting the unwanted nodes. CQ:S1019041 Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (This used to be ctdb commit 08f7f85477610a4916c1ec866aa467b28f1bbec3)
Diffstat (limited to 'ctdb/lib/util/debug.h')
0 files changed, 0 insertions, 0 deletions