From 1bcea841b12f27b694da9b25c17c5a2d286404c3 Mon Sep 17 00:00:00 2001 From: Mark Stapp Date: Mon, 6 Aug 2018 16:19:45 -0400 Subject: [PATCH] zebra: netlink fuzzing path correction Correct use of netlink_parse_info() in the netlink fuzzing path. Also clarify a couple of comments about pthreads. Signed-off-by: Mark Stapp --- zebra/kernel_netlink.c | 8 +++++++- zebra/zebra_dplane.c | 6 ++++-- zebra/zebra_rib.c | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/zebra/kernel_netlink.c b/zebra/kernel_netlink.c index 08219924fb..0a58c2e262 100644 --- a/zebra/kernel_netlink.c +++ b/zebra/kernel_netlink.c @@ -314,11 +314,17 @@ bool netlink_read; */ void netlink_read_init(const char *fname) { + struct zebra_dplane_info dp_info; + snprintf(netlink_fuzz_file, MAXPATHLEN, "%s", fname); /* Creating this fake socket for testing purposes */ struct zebra_ns *zns = zebra_ns_lookup(NS_DEFAULT); - netlink_parse_info(netlink_information_fetch, &zns->netlink, zns, 1, 0); + /* Capture key info from zns struct */ + zebra_dplane_info_from_zns(&dp_info, zns, false); + + netlink_parse_info(netlink_information_fetch, &zns->netlink, + &dp_info, 1, 0); } /** diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c index 8fec9fbce7..7bc623fdf0 100644 --- a/zebra/zebra_dplane.c +++ b/zebra/zebra_dplane.c @@ -740,7 +740,7 @@ int dplane_provider_register(const char *name, } if (prio <= DPLANE_PRIO_NONE || - prio >= DPLANE_PRIO_LAST) { + prio > DPLANE_PRIO_LAST) { ret = EINVAL; goto done; } @@ -798,7 +798,9 @@ static void zebra_dplane_init_internal(struct zebra_t *zebra) /* TODO -- register kernel 'provider' during init */ - /* TODO -- using zebra core event thread temporarily */ + /* TODO -- start dataplane pthread. We're using the zebra + * core/main thread temporarily + */ zdplane_g.dg_master = zebra->master; } diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index b89d285118..964885f47e 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -3305,7 +3305,7 @@ static int rib_process_dplane_results(struct thread *thread) /* * Results are returned from the dataplane subsystem, in the context of - * the dataplane thread. We enqueue the results here for processing by + * the dataplane pthread. We enqueue the results here for processing by * the main thread later. */ static int rib_dplane_results(dplane_ctx_h ctx) -- 2.39.5