mirror of git://git.sysmocom.de/ofono
gatmux: fix read channel remove on error
In case of invalid IO, read_watch is not reset. This fix crash on destroy gatmux.
This commit is contained in:
parent
54fb56df24
commit
da47398525
|
@ -598,6 +598,13 @@ void g_at_mux_unref(GAtMux *mux)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void read_watcher_destroy_notify(gpointer user_data)
|
||||||
|
{
|
||||||
|
GAtMux *mux = user_data;
|
||||||
|
|
||||||
|
mux->read_watch = 0;
|
||||||
|
}
|
||||||
|
|
||||||
gboolean g_at_mux_start(GAtMux *mux)
|
gboolean g_at_mux_start(GAtMux *mux)
|
||||||
{
|
{
|
||||||
if (mux->channel == NULL)
|
if (mux->channel == NULL)
|
||||||
|
@ -611,7 +618,7 @@ gboolean g_at_mux_start(GAtMux *mux)
|
||||||
|
|
||||||
mux->read_watch = g_io_add_watch_full(mux->channel, G_PRIORITY_DEFAULT,
|
mux->read_watch = g_io_add_watch_full(mux->channel, G_PRIORITY_DEFAULT,
|
||||||
G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
|
G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
|
||||||
received_data, mux, NULL);
|
received_data, mux, read_watcher_destroy_notify);
|
||||||
|
|
||||||
mux->shutdown = FALSE;
|
mux->shutdown = FALSE;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue