diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-11-30 15:48:18 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-11-30 16:04:57 +0100 |
commit | 05a42261795f27c4ecd0c4444d6503114322c8b8 (patch) | |
tree | b0a06e90e5edbbe87097c313018e849ac6639f5b | |
parent | cf6ef7fff729e389292e420e7725db83bba05a99 (diff) |
cdma: avoid double free of GError
The GError passed to simple_reg_callback() is coming from
(MMCallbackInfo *)info->error, and therefore shouldn't be freed.
https://bugzilla.gnome.org/show_bug.cgi?id=689289
For reference, reported by valgrind as:
==8985== Invalid free() / delete / delete[] / realloc()
==8985== at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8985== by 0x40ED4B: mm_callback_info_unref (mm-callback-info.c:244)
==8985== by 0x56FB0E7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.2)
==8985== by 0x56FB6E9: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.2)
==8985== by 0x56FDADF: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.2)
==8985== by 0x56FDDC7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.2)
==8985== by 0x56FE1C1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.2)
==8985== by 0x40DE22: main (main.c:199)
==8985== Address 0xa600770 is 0 bytes inside a block of size 16 free'd
==8985== at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8985== by 0x40EDD3: callback_info_done (mm-callback-info.c:89)
==8985== by 0x56FB0E7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.2)
==8985== by 0x56FB6E9: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.2)
==8985== by 0x56FDADF: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.2)
==8985== by 0x56FDDC7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.2)
==8985== by 0x56FE1C1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.2)
==8985== by 0x40DE22: main (main.c:199)
-rw-r--r-- | src/mm-generic-cdma.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/src/mm-generic-cdma.c b/src/mm-generic-cdma.c index ca6449d9..5c9bb14c 100644 --- a/src/mm-generic-cdma.c +++ b/src/mm-generic-cdma.c @@ -2280,7 +2280,6 @@ simple_reg_callback (MMModemCdma *modem, /* Fail immediately on anything but "no service" */ if (error && !no_service_error) { simple_state_machine (MM_MODEM (modem), error, info); - g_error_free (error); return; } |