summaryrefslogtreecommitdiff
path: root/lib/northbound_confd.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/northbound_confd.c')
-rw-r--r--lib/northbound_confd.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/northbound_confd.c b/lib/northbound_confd.c
index 0df286511e..e9669fc7e1 100644
--- a/lib/northbound_confd.c
+++ b/lib/northbound_confd.c
@@ -289,7 +289,11 @@ static int frr_confd_cdb_read_cb_prepare(int fd, int *subp, int reslen)
struct cdb_iter_args iter_args;
int ret;
- candidate = nb_config_dup(running_config);
+ pthread_rwlock_rdlock(&running_config->lock);
+ {
+ candidate = nb_config_dup(running_config);
+ }
+ pthread_rwlock_unlock(&running_config->lock);
/* Iterate over all configuration changes. */
iter_args.candidate = candidate;
@@ -322,7 +326,7 @@ static int frr_confd_cdb_read_cb_prepare(int fd, int *subp, int reslen)
*/
transaction = NULL;
ret = nb_candidate_commit_prepare(candidate, NB_CLIENT_CONFD, NULL,
- &transaction);
+ NULL, &transaction);
if (ret != NB_OK && ret != NB_ERR_NO_CHANGES) {
enum confd_errcode errcode;
const char *errmsg;