zephyr/subsys/modem
Bjarki Arge Andreasen 50f1ab6e20 modem: cmux: disable all work when released
The cmux module does not properly cancel all work when it is
released from its modem pipe. Releasing CMUX must cancel all
work as the pipe is no longer available, as it is set to NULL.

If work remains which tries to transmit something to the now
released pipe, a NULL dereference occurs.

This exact issue occurs if a DLCI channel is trying to open
after the modem pipe has been released, as the CMUX component
will send an open request at a fixed interval.

The expected behavior is for the open request to be cancelled,
and further open requests to be prevented until cmux is again
attached to a pipe.

Lastly, added a check to ensure that the pipe is indeed released
when calling attach, to ensure all work is indeed stopped before
modifying the pipe and buffers.

Signed-off-by: Bjarki Arge Andreasen <bjarki@arge-andreasen.me>
2024-06-26 09:27:20 -04:00
..
backends
CMakeLists.txt
Kconfig
modem_chat.c
modem_cmux.c modem: cmux: disable all work when released 2024-06-26 09:27:20 -04:00
modem_pipe.c
modem_pipelink.c
modem_ppp.c modem: ppp: coverity 330618: explicitly ignore retval 2024-06-24 14:25:46 +02:00
modem_stats.c
modem_ubx.c