Skip to content

Ril simfs read null catch

I got a data only sim for travelling abroad, and the said sim manages to cause a segfault during ofono start (both xenial and focal)

I have no idea if the fault lies in rild (Galaxy S7), the ril simfs driver, or the sim itself, but the sim is usable on the S7 with android and an iPhone

The patch included in this merge request prevents ofonod from going into segfault with the environment described

segfault on focal:

(gdb) bt
#0  __memcpy_generic () at ../sysdeps/aarch64/multiarch/../memcpy.S:182
#1  0x0000005555647368 in memcpy (__len=256, __src=<optimized out>, __dest=<optimized out>) at /usr/include/aarch64-linux-gnu/bits/string_fortified.h:34
#2  sim_fs_op_read_block_cb (error=<optimized out>, data=0x0, len=0, user=0x555575e410) at src/simfs.c:424
#3  0x0000007fb73e4cc4 in ?? () from /usr/lib/aarch64-linux-gnu/ofono/plugins/rilplugin.so
#4  0x0000007fb781957c in ?? () from /lib/aarch64-linux-gnu/libgrilio.so.1
#5  0x0000007fb7b72ff8 in ?? () from /lib/aarch64-linux-gnu/libffi.so.7
#6  0x0000007fb7b727cc in ?? () from /lib/aarch64-linux-gnu/libffi.so.7
#7  0x0000007fb7f23978 in g_cclosure_marshal_generic_va () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#8  0x0000007fb7f22e00 in ?? () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#9  0x0000007fb7f420bc in g_signal_emit_valist () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#10 0x0000007fb7f42658 in g_signal_emit () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#11 0x0000007fb788c8e8 in ril_binder_radio_decode_response () from /lib/aarch64-linux-gnu/libgrilio-binder.so.1
#12 0x0000007fb788ca0c in ?? () from /lib/aarch64-linux-gnu/libgrilio-binder.so.1
#13 0x0000007fb7b72ff8 in ?? () from /lib/aarch64-linux-gnu/libffi.so.7
#14 0x0000007fb7b727cc in ?? () from /lib/aarch64-linux-gnu/libffi.so.7
#15 0x0000007fb7f23978 in g_cclosure_marshal_generic_va () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#16 0x0000007fb7f22e00 in ?? () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#17 0x0000007fb7f41598 in g_signal_emit_valist () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#18 0x0000007fb7f42658 in g_signal_emit () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#19 0x0000007fb7834e24 in ?? () from /lib/aarch64-linux-gnu/libgbinder-radio.so.1
#20 0x0000007fb785b800 in ?? () from /lib/aarch64-linux-gnu/libgbinder.so.1
#21 0x0000007fb7858810 in ?? () from /lib/aarch64-linux-gnu/libgbinder.so.1
#22 0x0000007fb7e25804 in g_main_context_dispatch () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#23 0x0000007fb7e25bb4 in ?? () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#24 0x0000007fb7e25ef0 in g_main_loop_run () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#25 0x000000555558650c in main (argc=<optimized out>, argv=<optimized out>) at src/main.c:304
Edited by Katharine Chui

Merge request reports