diff mbox

dbus: Close dbus dict just after appending data

Message ID 1407106095-7767-1-git-send-email-eduardo.abinader@openbossa.org
State Accepted
Headers show

Commit Message

Eduardo Abinader Aug. 3, 2014, 10:48 p.m. UTC
Before fixing this issue, calling wpas_dbus_getter_p2p_device_config
was causing early termination of dbus connection, due to writing
values to an already closed dict.

Signed-off-by: Eduardo Abinader <eduardo.abinader@openbossa.org>
---
 wpa_supplicant/dbus/dbus_new_handlers_p2p.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Dan Williams Aug. 4, 2014, 6:23 p.m. UTC | #1
On Sun, 2014-08-03 at 18:48 -0400, Eduardo Abinader wrote:
> Before fixing this issue, calling wpas_dbus_getter_p2p_device_config
> was causing early termination of dbus connection, due to writing
> values to an already closed dict.
> 
> Signed-off-by: Eduardo Abinader <eduardo.abinader@openbossa.org>
> ---
>  wpa_supplicant/dbus/dbus_new_handlers_p2p.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

Good catch; patch looks good.

Dan

> diff --git a/wpa_supplicant/dbus/dbus_new_handlers_p2p.c b/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
> index 516551a..c9ecc7b 100644
> --- a/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
> +++ b/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
> @@ -830,15 +830,15 @@ dbus_bool_t wpas_dbus_getter_p2p_device_config(DBusMessageIter *iter,
>  				       wpa_s->conf->p2p_no_group_iface))
>  		goto err_no_mem;
>  
> -	if (!wpa_dbus_dict_close_write(&variant_iter, &dict_iter) ||
> -	    !dbus_message_iter_close_container(iter, &variant_iter))
> -		goto err_no_mem;
> -
>  	/* P2P Search Delay */
>  	if (!wpa_dbus_dict_append_uint32(&dict_iter, "p2p_search_delay",
>  					 wpa_s->conf->p2p_search_delay))
>  		goto err_no_mem;
>  
> +	if (!wpa_dbus_dict_close_write(&variant_iter, &dict_iter) ||
> +	    !dbus_message_iter_close_container(iter, &variant_iter))
> +		goto err_no_mem;
> +
>  	return TRUE;
>  
>  err_no_mem:
Jouni Malinen Aug. 10, 2014, 9:28 a.m. UTC | #2
On Sun, Aug 03, 2014 at 06:48:15PM -0400, Eduardo Abinader wrote:
> Before fixing this issue, calling wpas_dbus_getter_p2p_device_config
> was causing early termination of dbus connection, due to writing
> values to an already closed dict.

Thanks, applied.
diff mbox

Patch

diff --git a/wpa_supplicant/dbus/dbus_new_handlers_p2p.c b/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
index 516551a..c9ecc7b 100644
--- a/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
+++ b/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
@@ -830,15 +830,15 @@  dbus_bool_t wpas_dbus_getter_p2p_device_config(DBusMessageIter *iter,
 				       wpa_s->conf->p2p_no_group_iface))
 		goto err_no_mem;
 
-	if (!wpa_dbus_dict_close_write(&variant_iter, &dict_iter) ||
-	    !dbus_message_iter_close_container(iter, &variant_iter))
-		goto err_no_mem;
-
 	/* P2P Search Delay */
 	if (!wpa_dbus_dict_append_uint32(&dict_iter, "p2p_search_delay",
 					 wpa_s->conf->p2p_search_delay))
 		goto err_no_mem;
 
+	if (!wpa_dbus_dict_close_write(&variant_iter, &dict_iter) ||
+	    !dbus_message_iter_close_container(iter, &variant_iter))
+		goto err_no_mem;
+
 	return TRUE;
 
 err_no_mem: