Skip to content

quectel: fix crash when parsing +CTZU=? response

The logic should consider that mm_parse_uint_list() may return NULL without setting the output GError, in the case where an empty string is given.

This should ideally be changed in the mm_parse_uint_list() itself, but that approach is not trivial as the method is being used in multiple different places.

This change exclusively tries to solve this crash.

  0x000057435d315eca (ModemManager - mm-shared-quectel.c: 1060)	ctzu_test_ready
  0x00007eea3d019e86 (libgio-2.0.so.0 - gtask.c: 1309)	g_task_return_now
  0x00007eea3d018e50 (libgio-2.0.so.0 - gtask.c: 1378)	g_task_return
  0x000057435d268eab (ModemManager - mm-base-modem-at.c: 544)	at_command_ready
  0x00007eea3d019e86 (libgio-2.0.so.0 - gtask.c: 1309)	g_task_return_now
  0x00007eea3d018e50 (libgio-2.0.so.0 - gtask.c: 1378)	g_task_return
  0x000057435d318a18 (ModemManager - mm-port-serial-at.c: 350)	serial_command_ready
  0x00007eea3d019e86 (libgio-2.0.so.0 - gtask.c: 1309)	g_task_return_now
  0x00007eea3d018e50 (libgio-2.0.so.0 - gtask.c: 1378)	g_task_return
  0x000057435d31c7bd (ModemManager - mm-port-serial.c: 734)	port_serial_got_response
  0x000057435d31cc3e (ModemManager - mm-port-serial.c: 911)	parse_response_buffer
  0x000057435d31cc3e (ModemManager - mm-port-serial.c: 1028)	common_input_available
  0x00007eea3d16591b (libglib-2.0.so.0 - gmain.c: 3460)	g_main_dispatch
  0x00007eea3d16591b (libglib-2.0.so.0 - gmain.c: 4200)	g_main_context_dispatch
  0x00007eea3d165c37 (libglib-2.0.so.0 - gmain.c: 4276)	g_main_context_iterate
  0x00007eea3d165eb5 (libglib-2.0.so.0 - gmain.c: 4479)	g_main_loop_run
  0x000057435d25f5bf (ModemManager - main.c: 236)	main
  0x00007eea3c980705 (libc.so.6 - libc_start_call_main.h: 58)	__libc_start_call_main
  0x00007eea3c9807c1 (libc.so.6 - libc-start.c: 360)	__libc_start_main_impl
  0x000057435d25ef10 (ModemManager + 0x000b3f10)	_start
  0x00007ffcc0b5d517
Edited by Aleksander Morgado

Merge request reports

Loading