From c9711b49f488b43d6af9e84c1c5977b5ca1fc52e Mon Sep 17 00:00:00 2001 From: Justin Pettit Date: Mon, 4 Mar 2019 14:35:38 -0800 Subject: [PATCH] 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 Signed-off-by: 0-day Robot --- ovn/utilities/ovn-nbctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ovn/utilities/ovn-nbctl.c b/ovn/utilities/ovn-nbctl.c index 8a72e95741e..2727b410a15 100644 --- a/ovn/utilities/ovn-nbctl.c +++ b/ovn/utilities/ovn-nbctl.c @@ -1489,7 +1489,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)) {