From 8f1347bec5697982f4ba8c75bca8161fbe16e35c Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Mon, 2 Sep 2019 22:29:49 +0200 Subject: [PATCH] odhcpd: router: Fix out of scope memory access A pointer to search_buf is accessed by search_domain outside of the if branch which defines search_buf. The compiler could already reuse this memory. Coverity: #1445747 Signed-off-by: Hauke Mehrtens --- src/router.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/router.c b/src/router.c index 812946d..84fe849 100644 --- a/src/router.c +++ b/src/router.c @@ -604,6 +604,7 @@ static int send_router_advert(struct interface *iface, const struct in6_addr *fr struct in6_addr dns_pref, *dns_addr = NULL; size_t dns_cnt = 0, search_len = iface->search_len; uint8_t *search_domain = iface->search; + uint8_t search_buf[256]; /* DNS Recursive DNS */ if (iface->dns_cnt > 0) { @@ -627,8 +628,6 @@ static int send_router_advert(struct interface *iface, const struct in6_addr *fr /* DNS Search options */ if (!search_domain && !res_init() && _res.dnsrch[0] && _res.dnsrch[0][0]) { - uint8_t search_buf[256]; - int len = dn_comp(_res.dnsrch[0], search_buf, sizeof(search_buf), NULL, NULL); if (len > 0) { -- 2.30.2