Backport Coverity fix to hide detected issue
Backport already accepted upstream patch. Fixes: 1. Defect type: GCC_ANALYZER_WARNING 2. dnsmasq-2.85/src/forward.c:2335:18: warning[-Wanalyzer-null-dereference]: dereference of NULL 'rfd' Related: rhbz#2156789
This commit is contained in:
parent
6a1e3e7d2d
commit
4e78aa0303
77
dnsmasq-2.87-coverity-forward-cache.patch
Normal file
77
dnsmasq-2.87-coverity-forward-cache.patch
Normal file
@ -0,0 +1,77 @@
|
||||
From 2f45670951d2159ebf588e1e4943c0bc9e1cd20b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
|
||||
Date: Wed, 18 Aug 2021 14:59:23 +0200
|
||||
Subject: [PATCH] Add safety checks to places pointed by Coverity
|
||||
|
||||
GCC Analyzer (experimental)
|
||||
|
||||
1. dnsmasq-2.85/src/forward.c:0: scope_hint: In function 'allocate_rfd.part.0'
|
||||
2. dnsmasq-2.85/src/forward.c:2321:18: warning[-Wanalyzer-null-dereference]: dereference of NULL 'rfd'
|
||||
# 2319| *fdlp = rfl;
|
||||
# 2320|
|
||||
# 2321|-> return rfl->rfd->fd;
|
||||
# 2322| }
|
||||
# 2323|
|
||||
|
||||
1. dnsmasq-2.85/src/cache.c:0: scope_hint: In function 'log_query'
|
||||
2. dnsmasq-2.85/src/cache.c:1969:20: warning[-Wanalyzer-null-dereference]: dereference of NULL 'name'
|
||||
# 1967| source = "cached";
|
||||
# 1968|
|
||||
# 1969|-> if (strlen(name) == 0)
|
||||
# 1970| name = ".";
|
||||
# 1971|
|
||||
|
||||
1. dnsmasq-2.85/src/cache.c:0: scope_hint: In function 'cache_scan_free'
|
||||
2. dnsmasq-2.85/src/cache.c:436:20: warning[-Wanalyzer-null-argument]: use of NULL 'addr' where non-null expected
|
||||
40. /usr/include/sys/un.h:37: included_from: Included from here.
|
||||
41. dnsmasq-2.85/src/dnsmasq.h:101: included_from: Included from here.
|
||||
42. dnsmasq-2.85/src/cache.c:17: included_from: Included from here.
|
||||
43. /usr/include/string.h:64:12: note: argument 2 of 'memcmp' must be non-null
|
||||
# 434| (flags & crecp->flags & F_REVERSE) &&
|
||||
# 435| (flags & crecp->flags & (F_IPV4 | F_IPV6)) &&
|
||||
# 436|-> memcmp(&crecp->addr, addr, addrlen) == 0)
|
||||
# 437| {
|
||||
# 438| *up = crecp->hash_next;
|
||||
---
|
||||
src/cache.c | 4 ++--
|
||||
src/forward.c | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/cache.c b/src/cache.c
|
||||
index b3b3c7c..8f97947 100644
|
||||
--- a/src/cache.c
|
||||
+++ b/src/cache.c
|
||||
@@ -483,7 +483,7 @@ static struct crec *cache_scan_free(char *name, union all_addr *addr, unsigned s
|
||||
else if (!(crecp->flags & (F_HOSTS | F_DHCP | F_CONFIG)) &&
|
||||
(flags & crecp->flags & F_REVERSE) &&
|
||||
(flags & crecp->flags & (F_IPV4 | F_IPV6)) &&
|
||||
- memcmp(&crecp->addr, addr, addrlen) == 0)
|
||||
+ addr && memcmp(&crecp->addr, addr, addrlen) == 0)
|
||||
{
|
||||
*up = crecp->hash_next;
|
||||
cache_unlink(crecp);
|
||||
@@ -2067,7 +2067,7 @@ void log_query(unsigned int flags, char *name, union all_addr *addr, char *arg,
|
||||
else
|
||||
source = "cached";
|
||||
|
||||
- if (strlen(name) == 0)
|
||||
+ if (name && !name[0])
|
||||
name = ".";
|
||||
|
||||
if (option_bool(OPT_EXTRALOG))
|
||||
diff --git a/src/forward.c b/src/forward.c
|
||||
index 434ba77..f3c38d7 100644
|
||||
--- a/src/forward.c
|
||||
+++ b/src/forward.c
|
||||
@@ -2274,7 +2274,7 @@ int allocate_rfd(struct randfd_list **fdlp, struct server *serv)
|
||||
}
|
||||
}
|
||||
|
||||
- if (j == daemon->numrrand)
|
||||
+ if (!rfd) /* should be when j == daemon->numrrand */
|
||||
{
|
||||
struct randfd_list *rfl_poll;
|
||||
|
||||
--
|
||||
2.41.0
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
Name: dnsmasq
|
||||
Version: 2.85
|
||||
Release: 13%{?extraversion:.%{extraversion}}%{?dist}
|
||||
Release: 14%{?extraversion:.%{extraversion}}%{?dist}
|
||||
Summary: A lightweight DHCP/caching DNS server
|
||||
|
||||
License: GPLv2 or GPLv3
|
||||
@ -67,6 +67,8 @@ Patch13: dnsmasq-2.87-log-root-writeable.patch
|
||||
# Downstream only patch; https://bugzilla.redhat.com/show_bug.cgi?id=2209031
|
||||
# complements patch12
|
||||
Patch14: dnsmasq-2.85-domain-blocklist-speedup.patch
|
||||
# https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;h=9bbf098a970c9e5fa251939208e25fb21064d1be
|
||||
Patch15: dnsmasq-2.87-coverity-forward-cache.patch
|
||||
|
||||
# This is workaround to nettle bug #1549190
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1549190
|
||||
@ -210,6 +212,9 @@ install -Dpm 644 %{SOURCE2} %{buildroot}%{_sysusersdir}/%{name}.conf
|
||||
%{_mandir}/man1/dhcp_*
|
||||
|
||||
%changelog
|
||||
* Fri Jul 28 2023 Petr Menšík <pemensik@redhat.com> - 2.85-14
|
||||
- Backport Coverity fix to hide detected issue (#2156789)
|
||||
|
||||
* Thu Jul 20 2023 Petr Menšík <pemensik@redhat.com> - 2.85-13
|
||||
- Rebuild with modified gating settings
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user