From: Justin Pettit Date: Mon, 4 Mar 2019 22:28:58 +0000 (-0800) Subject: ovn-nbctl: Don't segfault when ovn-northd doesn't configure dynamic addresses. X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=fbf471bcf4a37973144b3f6d1689950cb559dc92;p=ovs.git ovn-nbctl: Don't segfault when ovn-northd doesn't configure dynamic addresses. When ovn-nbctl is used to configure a logical switch port's addresses, it does a sanity-check to make sure that a duplicate address isn't being used. If a port is configured as "dynamic", ovn-northd is supposed to populate the "dynamic_addresses" column in the Logical_Switch_Port table. If it isn't ovn-nbctl, would dereference a null pointer as part of the duplicate address check. This patch checks that "dynamic_addresses" is actually set first. Signed-off-by: Justin Pettit Acked-by: Ben Pfaff --- diff --git a/ovn/utilities/ovn-nbctl.c b/ovn/utilities/ovn-nbctl.c index cca7dbaa1..aa5aa3242 100644 --- a/ovn/utilities/ovn-nbctl.c +++ b/ovn/utilities/ovn-nbctl.c @@ -1488,7 +1488,7 @@ lsp_contains_duplicates(const struct nbrec_logical_switch *ls, for (size_t j = 0; j < lsp_test->n_addresses; j++) { struct lport_addresses laddrs_test; char *addr = lsp_test->addresses[j]; - if (is_dynamic_lsp_address(addr)) { + if (is_dynamic_lsp_address(addr) && lsp_test->dynamic_addresses) { addr = lsp_test->dynamic_addresses; } if (extract_lsp_addresses(addr, &laddrs_test)) {