]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network/wwan: add missing error check
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 17 Feb 2026 07:50:48 +0000 (16:50 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 17 Feb 2026 08:01:00 +0000 (17:01 +0900)
Fixes CID#1645015.

src/network/networkd-wwan-bus.c

index b4c63c8b6e0178293a7394e2c3520321205be4fd..f3400a36cc128e8f11650b4789f08b85ab08835a 100644 (file)
@@ -477,18 +477,16 @@ static int bearer_new_and_initialize(Modem *modem, const char *path) {
 
 static int modem_connect_handler(sd_bus_message *message, void *userdata, sd_bus_error *ret_error) {
         Modem *modem = ASSERT_PTR(userdata);
-        const sd_bus_error *e;
-        const char *new_bearer;
         int r;
 
         assert(message);
 
         modem->slot_connect = sd_bus_slot_unref(modem->slot_connect);
 
-        e = sd_bus_message_get_error(message);
+        const sd_bus_error *e = sd_bus_message_get_error(message);
         if (e) {
                 r = sd_bus_error_get_errno(e);
-                log_full_errno(LOG_ERR, r,
+                log_error_errno(r,
                                "Could not connect modem %s %s: %s",
                                modem->manufacturer, modem->model,
                                bus_error_message(e, r));
@@ -497,10 +495,16 @@ static int modem_connect_handler(sd_bus_message *message, void *userdata, sd_bus
                 return 0;
         }
 
-        sd_bus_message_read(message, "o", &new_bearer);
+        const char *new_bearer;
+        r = sd_bus_message_read(message, "o", &new_bearer);
+        if (r < 0) {
+                log_debug_errno(r, "Received connection of %s %s from ModemManager, but bearer not found, ignoring: %m",
+                                modem->manufacturer, modem->model);
+                return 0;
+        }
+
         log_debug("ModemManager: %s %s connected, bearer is at %s",
                   modem->manufacturer, modem->model, new_bearer);
-
         return 0;
 }