zebra: Make fuzzer code use default netlink socket

Change the fuzzing code so that it fakes data from
the listening socket rather than using its own pseudo one.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
This commit is contained in:
Stephen Worley 2018-07-26 14:30:04 -04:00
parent acfa8927f9
commit ef593eff00

View File

@ -318,16 +318,9 @@ void netlink_read_init(const char *fname)
{ {
snprintf(netlink_fuzz_file, MAXPATHLEN, "%s", fname); snprintf(netlink_fuzz_file, MAXPATHLEN, "%s", fname);
/* Creating this fake socket for testing purposes */ /* Creating this fake socket for testing purposes */
struct zebra_ns zns = { struct zebra_ns *zns = zebra_ns_lookup(NS_DEFAULT);
.ns_id = 0,
.netlink_cmd = {.sock = -1, netlink_parse_info(netlink_information_fetch, &zns->netlink, zns, 1, 0);
.seq = -1,
.name = "fuzzer_command_channel"},
.netlink = {.sock = -1,
.seq = -1,
.name = "fuzzer_kernel_message"}
};
netlink_parse_info(netlink_information_fetch, &zns.netlink, &zns, 1, 0);
} }
/** /**
@ -371,7 +364,7 @@ static long netlink_read_file(char *buf, const char *fname)
fseek(f, 0, SEEK_END); fseek(f, 0, SEEK_END);
file_bytes = ftell(f); file_bytes = ftell(f);
rewind(f); rewind(f);
fread(buf, file_bytes, 1, f); fread(buf, NL_RCV_PKT_BUF_SIZE, 1, f);
fclose(f); fclose(f);
} }
zserv_privs.change(ZPRIVS_LOWER); zserv_privs.change(ZPRIVS_LOWER);