Hi,
While looking into Bugzilla, I have found this bug:
https://bugs.meego.com/show_bug.cgi?id=15124
And looking at logs, I have found this:
ofonod[746]: src/call-forwarding.c:call_forwarding_remove() atom: 0x819b5b0
ofonod[746]: Aborting (signal 11)
ofonod[746]: ++++++++ backtrace ++++++++
ofonod[746]: [0]: [0xb770c400]
ofonod[746]: [1]: /lib/libglib-2.0.so.0(g_slist_remove+0x22) [0x46038b12]
ofonod[746]: [2]: ofonod() [0x80ed26b]
ofonod[746]: [3]: ofonod() [0x80ba690]
ofonod[746]: [4]: ofonod() [0x80ba75b]
ofonod[746]: [5]: ofonod() [0x80aab33]
ofonod[746]: [6]: ofonod() [0x8071352]
ofonod[746]: [7]: ofonod() [0x8072156]
ofonod[746]: [8]: ofonod() [0x8074317]
ofonod[746]: [9]: /lib/libglib-2.0.so.0() [0x4603193f]
ofonod[746]: [10]: /lib/libglib-2.0.so.0(g_main_context_dispatch+0x1ae) [0x45ffcc34]
ofonod[746]: [11]: /lib/libglib-2.0.so.0() [0x45ffd258]
ofonod[746]: [12]: /lib/libglib-2.0.so.0(g_main_loop_run+0x221) [0x45ffd7f6]
ofonod[746]: [13]: ofonod() [0x80b8fb9]
ofonod[746]: [14]: /lib/libc.so.6(__libc_start_main+0xe7) [0x45e0fbb7]
ofonod[746]: [15]: ofonod() [0x8052af1]
ofonod[746]: +++++++++++++++++++++++++++
It seems that this crash occurs when repeating on/off of the modem.
After some look into the code, I may have found an idea, but I would like to share it
before proposing a patch.
When call_forwarding atom is created, the cf_conditions list is not initialized. And the
list is populated when the query_cf_callback is called. So I guess that this is when we
receive the answer of the AT command to query call forwarding. And this command could take
times.
If we turn off the modem before receiving the answer, we might go through the
call_forwarding_remove before populating the list.
And in the call_forwarding_remove, we do a cf_clear_all, that will clear the list, without
checking if the list exist or not.
So the crash might be there.
I would propose to add an if(cf->cf_conditions[i]) before the
cf_list_clear(cf->cf_conditions[i]), line 195.
If this seems a good thought, please tell me and I will create a patch.
Regards,
Bertrand.
--
Bertrand Aygon Engineering Manager
Bertrand.Aygon@Intel.com<mailto:Bertrand.Aygon@intel.com> Open Source
Technology Center, Intel Corporation
---------------------------------------------------------------------
Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: "Les Montalets"- 2, rue de Paris,
92196 Meudon Cedex, France
Registration Number: 302 456 199 R.C.S. NANTERRE
Capital: 4,572,000 Euros
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.