@@ -300,9 +300,10 @@ ni_nanny_netif_state_change_signal_receive(ni_dbus_connection_t *conn, ni_dbus_m
300300 // A new device was added. Could be a virtual device like
301301 // a VLAN or vif, or a hotplug device
302302 // Create a worker and a managed_netif for this device.
303- w = ni_fsm_recv_new_netif_path (mgr -> fsm , object_path );
304- ni_nanny_register_device (mgr , w );
305- ni_nanny_schedule_recheck (mgr , w );
303+ if ((w = ni_fsm_recv_new_netif_path (mgr -> fsm , object_path ))) {
304+ ni_nanny_register_device (mgr , w );
305+ ni_nanny_schedule_recheck (mgr , w );
306+ }
306307 return ;
307308 }
308309
@@ -311,19 +312,22 @@ ni_nanny_netif_state_change_signal_receive(ni_dbus_connection_t *conn, ni_dbus_m
311312 signal_name , object_path );
312313 return ;
313314 }
314-
315- ni_assert (w -> type == NI_IFWORKER_TYPE_NETDEV );
316- ni_assert (w -> device );
315+ if (w -> type != NI_IFWORKER_TYPE_NETDEV || w -> device == NULL ) {
316+ ni_error ("%s: received signal \"%s\" from \"%s\" (not a managed network device)" ,
317+ w -> name , signal_name , object_path );
318+ return ;
319+ }
317320
318321 if (event == NI_EVENT_DEVICE_DELETE ) {
319- ni_debug_nanny ("%s: received signal %s from %s" , w -> name , signal_name , object_path );
322+ ni_debug_nanny ("%s: received signal \"%s\" from \"%s\"" ,
323+ w -> name , signal_name , object_path );
320324 // delete the worker and the managed netif
321325 ni_nanny_unregister_device (mgr , w );
322326 return ;
323327 }
324328
325329 if ((mdev = ni_nanny_get_device (mgr , w )) == NULL ) {
326- ni_debug_nanny ("%s: received signal %s from %s (not a managed device)" ,
330+ ni_debug_nanny ("%s: received signal \"%s\" from \"%s\" (not a managed device)" ,
327331 w -> name , signal_name , object_path );
328332 return ;
329333 }
@@ -388,9 +392,10 @@ ni_nanny_modem_state_change_signal_receive(ni_dbus_connection_t *conn, ni_dbus_m
388392
389393 // We receive a deviceCreate signal when a modem was plugged in
390394 if (event == NI_EVENT_DEVICE_CREATE ) {
391- w = ni_fsm_recv_new_modem_path (mgr -> fsm , object_path );
392- ni_nanny_register_device (mgr , w );
393- ni_nanny_schedule_recheck (mgr , w );
395+ if ((w = ni_fsm_recv_new_modem_path (mgr -> fsm , object_path ))) {
396+ ni_nanny_register_device (mgr , w );
397+ ni_nanny_schedule_recheck (mgr , w );
398+ }
394399 return ;
395400 }
396401
@@ -400,10 +405,13 @@ ni_nanny_modem_state_change_signal_receive(ni_dbus_connection_t *conn, ni_dbus_m
400405 return ;
401406 }
402407
403- ni_debug_nanny ("%s: received signal %s from %s" , w -> name , signal_name , object_path );
404- ni_assert (w -> type == NI_IFWORKER_TYPE_MODEM );
405- ni_assert (w -> modem );
408+ if (w -> type != NI_IFWORKER_TYPE_MODEM || w -> modem == NULL ) {
409+ ni_error ("%s: received signal \"%s\" from \"%s\" (not a managed modem device)" ,
410+ w -> name , signal_name , object_path );
411+ return ;
412+ }
406413
414+ ni_debug_nanny ("%s: received signal %s from %s" , w -> name , signal_name , object_path );
407415 if (event == NI_EVENT_DEVICE_DELETE ) {
408416 // delete the worker and the managed modem
409417 ni_nanny_unregister_device (mgr , w );
0 commit comments