- Add avahi-CVE-2023-1981.patch: emit error if requested service is not found (boo#1210328 CVE-2023-1981). OBS-URL: https://build.opensuse.org/request/show/1078523 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/avahi?expand=0&rev=217
57 lines
1.9 KiB
Diff
57 lines
1.9 KiB
Diff
From a2696da2f2c50ac43b6c4903f72290d5c3fa9f6f Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
|
|
Date: Thu, 17 Nov 2022 01:51:53 +0100
|
|
Subject: [PATCH] Emit error if requested service is not found
|
|
|
|
It currently just crashes instead of replying with error. Check return
|
|
value and emit error instead of passing NULL pointer to reply.
|
|
|
|
Fixes #375
|
|
---
|
|
avahi-daemon/dbus-protocol.c | 20 ++++++++++++++------
|
|
1 file changed, 14 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/avahi-daemon/dbus-protocol.c b/avahi-daemon/dbus-protocol.c
|
|
index 70d7687..406d0b4 100644
|
|
--- a/avahi-daemon/dbus-protocol.c
|
|
+++ b/avahi-daemon/dbus-protocol.c
|
|
@@ -375,10 +375,14 @@ static DBusHandlerResult dbus_get_alternative_host_name(DBusConnection *c, DBusM
|
|
}
|
|
|
|
t = avahi_alternative_host_name(n);
|
|
- avahi_dbus_respond_string(c, m, t);
|
|
- avahi_free(t);
|
|
+ if (t) {
|
|
+ avahi_dbus_respond_string(c, m, t);
|
|
+ avahi_free(t);
|
|
|
|
- return DBUS_HANDLER_RESULT_HANDLED;
|
|
+ return DBUS_HANDLER_RESULT_HANDLED;
|
|
+ } else {
|
|
+ return avahi_dbus_respond_error(c, m, AVAHI_ERR_NOT_FOUND, "Hostname not found");
|
|
+ }
|
|
}
|
|
|
|
static DBusHandlerResult dbus_get_alternative_service_name(DBusConnection *c, DBusMessage *m, DBusError *error) {
|
|
@@ -389,10 +393,14 @@ static DBusHandlerResult dbus_get_alternative_service_name(DBusConnection *c, DB
|
|
}
|
|
|
|
t = avahi_alternative_service_name(n);
|
|
- avahi_dbus_respond_string(c, m, t);
|
|
- avahi_free(t);
|
|
+ if (t) {
|
|
+ avahi_dbus_respond_string(c, m, t);
|
|
+ avahi_free(t);
|
|
|
|
- return DBUS_HANDLER_RESULT_HANDLED;
|
|
+ return DBUS_HANDLER_RESULT_HANDLED;
|
|
+ } else {
|
|
+ return avahi_dbus_respond_error(c, m, AVAHI_ERR_NOT_FOUND, "Service not found");
|
|
+ }
|
|
}
|
|
|
|
static DBusHandlerResult dbus_create_new_entry_group(DBusConnection *c, DBusMessage *m, DBusError *error) {
|
|
--
|
|
2.40.0
|
|
|