Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0008-Fix-coverity-warnings-on-dbus.patch (backport from upstream) -- From bbfdf6a435cbd5f71ae76f962ce86786346589aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= Date: Fri, 3 Sep 2021 17:19:05 +0200 Subject: [PATCH 08/15] Fix coverity warnings on dbus diff --git a/src/dbus.c b/src/dbus.c index cbdce9c..d746b9a 100644 --- a/src/dbus.c +++ b/src/dbus.c @@ -114,7 +114,7 @@ static dbus_bool_t add_watch(DBusWatch *watch, void *data) w->next = daemon->watches; daemon->watches = w; - w = data; /* no warning */ + (void)data; /* no warning */ return TRUE; } @@ -134,16 +134,20 @@ static void remove_watch(DBusWatch *watch, void *data) up = &(w->next); } - w = data; /* no warning */ + (void)data; /* no warning */ } -static void dbus_read_servers(DBusMessage *message) +static DBusMessage* dbus_read_servers(DBusMessage *message) { DBusMessageIter iter; union mysockaddr addr, source_addr; char *domain; - dbus_message_iter_init(message, &iter); + if (!dbus_message_iter_init(message, &iter)) + { + return dbus_message_new_error(message, DBUS_ERROR_INVALID_ARGS, + "Failed to initialize dbus message iter"); + } mark_servers(SERV_FROM_DBUS); @@ -222,6 +226,7 @@ static void dbus_read_servers(DBusMessage *message) /* unlink and free anything still marked. */ cleanup_servers(); + return NULL; } #ifdef HAVE_LOOP @@ -545,6 +550,10 @@ static DBusMessage *dbus_add_lease(DBusMessage* message) "Invalid IP address '%s'", ipaddr); hw_len = parse_hex((char*)hwaddr, dhcp_chaddr, DHCP_CHADDR_MAX, NULL, &hw_type); + if (hw_len < 0) + return dbus_message_new_error_printf(message, DBUS_ERROR_INVALID_ARGS, + "Invalid HW address '%s'", hwaddr); + if (hw_type == 0 && hw_len != 0) hw_type = ARPHRD_ETHER; @@ -668,7 +677,7 @@ DBusHandlerResult message_handler(DBusConnection *connection, #endif else if (strcmp(method, "SetServers") == 0) { - dbus_read_servers(message); + reply = dbus_read_servers(message); new_servers = 1; } else if (strcmp(method, "SetServersEx") == 0) @@ -719,7 +728,7 @@ DBusHandlerResult message_handler(DBusConnection *connection, if (clear_cache) clear_cache_and_reload(dnsmasq_time()); - method = user_data; /* no warning */ + (void)user_data; /* no warning */ /* If no reply or no error, return nothing */ if (!reply) -- 2.31.1