Re: [MM] [PATCH] broadband-modem: disconnect bearers only if the bearer list still exists

2012-09-22 Thread Aleksander Morgado
On 22/09/12 09:07, Ben Chan wrote:
> This patch fixes a crash when MMBroadbandModem tries to access an
> already cleared bearer list during the disabling steps.

Pushed, thanks.

> 
> Thread 0 *CRASHED* ( SIGSEGV @ 0x )
> 
> 0x7f6eed4c40a3   [ModemManager] - mm-bearer-list.c:259   
> mm_bearer_list_disconnect_all_bearers
> 0x7f6eed4cd6f8   [ModemManager] - mm-iface-modem.c:1216  
> handle_enable_auth_ready
> 0x7f6eed332676   [libgio-2.0.so.0.3000.2]   - gsimpleasyncresult.c:749   
> g_simple_async_result_complete
> 0x7f6eed4c5750   [ModemManager] - mm-base-modem.c:1015   
> authorize_ready
> 0x7f6eed332676   [libgio-2.0.so.0.3000.2]   - gsimpleasyncresult.c:749   
> g_simple_async_result_complete
> 0x7f6eed332788   [libgio-2.0.so.0.3000.2]   - gsimpleasyncresult.c:761   
> complete_in_idle_cb
> 0x7f6eecf36f44   [libglib-2.0.so.0.3000.2]  - gmain.c:2441   
> g_main_context_dispatch
> 0x7f6eecf37597   [libglib-2.0.so.0.3000.2]  - gmain.c:3089   
> g_main_context_iterate
> 0x7f6eecf37b51   [libglib-2.0.so.0.3000.2]  - gmain.c:3297   
> g_main_loop_run
> 0x7f6eed4b5ad1   [ModemManager] - main.c:150 main
> 0x7f6eec95141c   [libc-2.15.so] - libc-start.c:234   
> __libc_start_main
> 0x7f6eed4b55e8   [ModemManager] + 0x0001a5e8
> ---
>  src/mm-broadband-modem.c | 14 +-
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
> index 4a2fdb8..64df821 100644
> --- a/src/mm-broadband-modem.c
> +++ b/src/mm-broadband-modem.c
> @@ -6883,11 +6883,15 @@ disabling_step (DisablingContext *ctx)
>  ctx->step++;
>  
>  case DISABLING_STEP_DISCONNECT_BEARERS:
> -mm_bearer_list_disconnect_all_bearers (
> -ctx->self->priv->modem_bearer_list,
> -(GAsyncReadyCallback)bearer_list_disconnect_all_bearers_ready,
> -ctx);
> -return;
> +if (ctx->self->priv->modem_bearer_list) {
> +mm_bearer_list_disconnect_all_bearers (
> +ctx->self->priv->modem_bearer_list,
> +
> (GAsyncReadyCallback)bearer_list_disconnect_all_bearers_ready,
> +ctx);
> +return;
> +}
> +/* Fall down to next step */
> +ctx->step++;
>  
>  case DISABLING_STEP_IFACE_SIMPLE:
>  /* Fall down to next step */
> 


-- 
Aleksander
___
networkmanager-list mailing list
networkmanager-list@gnome.org
https://mail.gnome.org/mailman/listinfo/networkmanager-list


[MM] [PATCH] broadband-modem: disconnect bearers only if the bearer list still exists

2012-09-22 Thread Ben Chan
This patch fixes a crash when MMBroadbandModem tries to access an
already cleared bearer list during the disabling steps.

Thread 0 *CRASHED* ( SIGSEGV @ 0x )

0x7f6eed4c40a3   [ModemManager] - mm-bearer-list.c:259   
mm_bearer_list_disconnect_all_bearers
0x7f6eed4cd6f8   [ModemManager] - mm-iface-modem.c:1216  
handle_enable_auth_ready
0x7f6eed332676   [libgio-2.0.so.0.3000.2]   - gsimpleasyncresult.c:749   
g_simple_async_result_complete
0x7f6eed4c5750   [ModemManager] - mm-base-modem.c:1015   
authorize_ready
0x7f6eed332676   [libgio-2.0.so.0.3000.2]   - gsimpleasyncresult.c:749   
g_simple_async_result_complete
0x7f6eed332788   [libgio-2.0.so.0.3000.2]   - gsimpleasyncresult.c:761   
complete_in_idle_cb
0x7f6eecf36f44   [libglib-2.0.so.0.3000.2]  - gmain.c:2441   
g_main_context_dispatch
0x7f6eecf37597   [libglib-2.0.so.0.3000.2]  - gmain.c:3089   
g_main_context_iterate
0x7f6eecf37b51   [libglib-2.0.so.0.3000.2]  - gmain.c:3297   
g_main_loop_run
0x7f6eed4b5ad1   [ModemManager] - main.c:150 main
0x7f6eec95141c   [libc-2.15.so] - libc-start.c:234   
__libc_start_main
0x7f6eed4b55e8   [ModemManager] + 0x0001a5e8
---
 src/mm-broadband-modem.c | 14 +-
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index 4a2fdb8..64df821 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -6883,11 +6883,15 @@ disabling_step (DisablingContext *ctx)
 ctx->step++;
 
 case DISABLING_STEP_DISCONNECT_BEARERS:
-mm_bearer_list_disconnect_all_bearers (
-ctx->self->priv->modem_bearer_list,
-(GAsyncReadyCallback)bearer_list_disconnect_all_bearers_ready,
-ctx);
-return;
+if (ctx->self->priv->modem_bearer_list) {
+mm_bearer_list_disconnect_all_bearers (
+ctx->self->priv->modem_bearer_list,
+(GAsyncReadyCallback)bearer_list_disconnect_all_bearers_ready,
+ctx);
+return;
+}
+/* Fall down to next step */
+ctx->step++;
 
 case DISABLING_STEP_IFACE_SIMPLE:
 /* Fall down to next step */
-- 
1.7.12

___
networkmanager-list mailing list
networkmanager-list@gnome.org
https://mail.gnome.org/mailman/listinfo/networkmanager-list