1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00
samba-mirror/ctdb/server
Martin Schwenke 716f52f68b ctdb-recoverd: Avoid dereferencing NULL rec->nodemap
Inside the nested event loop in ctdb_ctrl_getnodemap(), various
asynchronous handlers may dereference rec->nodemap, which will be
NULL.

One example is lost_reclock_handler(), which causes rec->nodemap to be
unconditionally dereferenced in list_of_nodes() via this call chain:

  list_of_nodes()
  list_of_active_nodes()
  set_recovery_mode()
  force_election()
  lost_reclock_handler()

Instead of attempting to trace all of the cases, just avoid leaving
rec->nodemap set to NULL.  Attempting to use an old value is generally
harmless, especially since it will be the same as the new value in
most cases.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14324

Reported-by: Volker Lendecke <vl@samba.org>
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>

Autobuild-User(master): Martin Schwenke <martins@samba.org>
Autobuild-Date(master): Tue Mar 24 01:22:45 UTC 2020 on sn-devel-184
2020-03-24 01:22:45 +00:00
..
ctdb_banning.c ctdb-daemon: Drop unused function ctdb_local_node_got_banned() 2019-08-20 07:15:41 +00:00
ctdb_call.c ctdb/server/ctdb_call.c: typo fixes 2019-10-31 00:43:38 +00:00
ctdb_client.c ctdb-daemon: Remove more unused old client database functions 2020-03-23 23:45:38 +00:00
ctdb_cluster_mutex.c ctdb-mutex: Drop dependency on ctdb_set_helper 2019-07-26 03:34:17 +00:00
ctdb_cluster_mutex.h ctdb-cluster-mutex: Fix #endif decoration 2016-06-08 04:52:18 +02:00
ctdb_config.c ctdb-config: Switch tunable DisableIPFailover to a config option 2018-08-24 10:59:21 +02:00
ctdb_config.h ctdb-config: Switch tunable DisableIPFailover to a config option 2018-08-24 10:59:21 +02:00
ctdb_control.c ctdb-daemon: Implement DB_VACUUM control 2019-10-24 04:06:43 +00:00
ctdb_daemon.c ctdb-daemon: Fork when not interactive and test mode is enabled 2020-02-10 04:07:39 +00:00
ctdb_fork.c ctdb-daemon: Add ctdb_vfork_exec() 2016-12-05 08:09:23 +01:00
ctdb_freeze.c ctdb-daemon: Add implementation of VACUUM_FETCH control 2019-10-24 04:06:42 +00:00
ctdb_keepalive.c ctdb-daemon: Fix signed/unsigned comparisons by declaring as unsigned 2019-07-05 05:03:23 +00:00
ctdb_lock_helper.c ctdb-daemon: Fix signed/unsigned comparisons by declaring as unsigned 2019-07-05 05:03:23 +00:00
ctdb_lock.c ctdb-daemon: Check for lock count underflow 2020-02-18 02:56:38 +00:00
ctdb_logging.c ctdb-daemon: Drop unused function ctdb_vfork_with_logging() 2019-07-05 05:03:24 +00:00
ctdb_ltdb_server.c ctdb-daemon: Don't allow attach from recovery if recovery is not active 2020-03-23 23:45:38 +00:00
ctdb_monitor.c ctdb-daemon: Only stop monitoring if it has been initialised 2020-01-28 09:57:32 +00:00
ctdb_mutex_fcntl_helper.c ctdb-mutex: Change default re-check time for fcntl helper to 5s 2020-01-21 11:39:40 +00:00
ctdb_persistent.c ctdb-daemon: Fix signed/unsigned comparisons by declaring as unsigned 2019-07-05 05:03:23 +00:00
ctdb_recover.c ctdb-daemon: Make node inactive in the NODE_STOP control 2019-08-20 08:32:27 +00:00
ctdb_recoverd.c ctdb-recoverd: Avoid dereferencing NULL rec->nodemap 2020-03-24 01:22:45 +00:00
ctdb_recovery_helper.c ctdb-recovery: Create database on nodes where it is missing 2020-03-23 23:45:38 +00:00
ctdb_server.c ctdb-daemon: more logical whitespace, debug modernisation 2020-03-12 03:47:30 +00:00
ctdb_statistics.c ctdb-server: Replace ctdb_logging.h with common/logging.h 2015-11-16 00:46:15 +01:00
ctdb_takeover_helper.c ctdb-daemon: Drop unused values assigned to variable 2019-07-05 05:03:23 +00:00
ctdb_takeover.c Spelling fixes s/ dont / don't / 2019-09-01 22:21:27 +00:00
ctdb_traverse.c ctdb-daemon: Fix signed/unsigned comparisons by declaring as unsigned 2019-07-05 05:03:23 +00:00
ctdb_tunables.c ctdb-daemon: Use refactored tunable code 2016-07-25 21:29:46 +02:00
ctdb_tunnel.c ctdb-daemon: Add code to process ctdb_req_tunnel packets 2017-10-10 11:45:19 +02:00
ctdb_update_record.c ctdb-daemon: Fix signed/unsigned comparisons by declaring as unsigned 2019-07-05 05:03:23 +00:00
ctdb_uptime.c ctdb-server: Replace ctdb_logging.h with common/logging.h 2015-11-16 00:46:15 +01:00
ctdb_vacuum.c ctdb-daemon: Implement DB_VACUUM control 2019-10-24 04:06:43 +00:00
ctdbd.c ctdb-daemon: Pass more information to ctdb_start_daemon() 2020-02-10 04:07:38 +00:00
eventscript.c ctdb-daemon: Fix signed/unsigned comparisons by declaring as unsigned 2019-07-05 05:03:23 +00:00
ipalloc_common.c ctdb-ipalloc: Avoid -1 as a PNN, use CTDB_UNKNOWN_PNN instead 2019-06-05 10:25:50 +00:00
ipalloc_deterministic.c ctdb-takeover: IPAllocAlgorithm replaces LCP2PublicIPs, DeterministicIPs 2016-12-19 04:07:08 +01:00
ipalloc_lcp2.c ctdb-ipalloc: Fix warning about unused value assigned to srcimbl 2019-06-05 10:25:50 +00:00
ipalloc_nondeterministic.c ctdb-ipalloc: Avoid -1 as a PNN, use CTDB_UNKNOWN_PNN instead 2019-06-05 10:25:50 +00:00
ipalloc_private.h ctdb-ipalloc: Fix signed/unsigned comparisons by declaring as unsigned 2019-06-05 10:25:50 +00:00
ipalloc.c ctdb-ipalloc: Avoid -1 as a PNN, use CTDB_UNKNOWN_PNN instead 2019-06-05 10:25:50 +00:00
ipalloc.h ctdb-daemon: Drop the noiphost "node flags" bitmap 2018-07-11 11:48:38 +02:00
legacy_conf.c ctdb-config: Change option "no realtime" option to "realtime scheduling" 2018-08-24 10:59:20 +02:00
legacy_conf.h ctdb-config: Change option "no realtime" option to "realtime scheduling" 2018-08-24 10:59:20 +02:00