summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-11-30 15:48:18 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-11-30 16:04:57 +0100
commit05a42261795f27c4ecd0c4444d6503114322c8b8 (patch)
treeb0a06e90e5edbbe87097c313018e849ac6639f5b
parentcf6ef7fff729e389292e420e7725db83bba05a99 (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.c1
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;
}