diff options
author | Paul Kocialkowski <contact@paulk.fr> | 2012-08-18 16:45:31 +0200 |
---|---|---|
committer | Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> | 2012-08-24 17:54:40 +0200 |
commit | ccf9b863a3f5b118b13c54f030ef7a77e672d758 (patch) | |
tree | 7d461f1cfc7b2e5ee605e2d6d0d84cdee4be8e31 | |
parent | 547b5f96fda88bd7c8b0a5ae29a0b63305b7a0ec (diff) | |
download | hardware_ril_samsung-ril-ccf9b863a3f5b118b13c54f030ef7a77e672d758.zip hardware_ril_samsung-ril-ccf9b863a3f5b118b13c54f030ef7a77e672d758.tar.gz hardware_ril_samsung-ril-ccf9b863a3f5b118b13c54f030ef7a77e672d758.tar.bz2 |
Try to fix ipc_net_plmn_sel segmentation fault.
Without that fix we have:
I/DEBUG ( 2256): #00 pc 0000ed68 /system/lib/libsamsung-ril.so (ipc_net_plmn_sel)
I/DEBUG ( 2256): #01 pc 0000bdfa /system/lib/libsamsung-ril.so (ipc_fmt_dispatch)
I/DEBUG ( 2256): #02 pc 0000c6f6 /system/lib/libsamsung-ril.so (ipc_fmt_read_loop)
I/DEBUG ( 2256): #03 pc 0000bff4 /system/lib/libsamsung-ril.so (ril_client_thread)
I/DEBUG ( 2256): #04 pc 00012e2c /system/lib/libc.so (__thread_entry)
I/DEBUG ( 2256): #05 pc 0001295c /system/lib/libc.so (pthread_create)
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
-rw-r--r-- | net.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -795,10 +795,14 @@ void ril_request_query_network_selection_mode(RIL_Token t) void ipc_net_plmn_sel(struct ipc_message_info *info) { - struct ipc_net_plmn_sel_get *plmn_sel = (struct ipc_net_plmn_sel_get *) info->data; - int ril_mode = ipc2ril_plmn_sel(plmn_sel->plmn_sel); + struct ipc_net_plmn_sel_get *plmn_sel; + int ril_mode; - RIL_onRequestComplete(reqGetToken(info->aseq), RIL_E_SUCCESS, &ril_mode, sizeof(int)); + if (info->data != NULL && info->length >= sizeof(struct ipc_net_plmn_sel_get)) { + plmn_sel = (struct ipc_net_plmn_sel_get *) info->data; + ril_mode = ipc2ril_plmn_sel(plmn_sel->plmn_sel); + RIL_onRequestComplete(reqGetToken(info->aseq), RIL_E_SUCCESS, &ril_mode, sizeof(int)); + } } void ipc_net_plmn_sel_complete(struct ipc_message_info *info) |