[network-manager-applet] applet: fix accessing freed memory (rh #1129818)



commit 10c78cb60818cb005e105fb71b74e47d93f53688
Author: Jiří Klimeš <jklimes redhat com>
Date:   Thu Dec 17 14:31:48 2015 +0100

    applet: fix accessing freed memory (rh #1129818)
    
    It was a problem of looping throught list and invalidating ->next pointer when
    removing an item.
    
    See this commit for a similar bug:
    
http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=b9da3d93207e46de895fd07cfe9de1edfa79efef

 src/applet.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/src/applet.c b/src/applet.c
index d65e612..3d31d7e 100644
--- a/src/applet.c
+++ b/src/applet.c
@@ -3034,11 +3034,13 @@ applet_agent_cancel_secrets_cb (AppletAgent *agent,
                                 gpointer user_data)
 {
        NMApplet *applet = NM_APPLET (user_data);
-       GSList *iter;
+       GSList *iter, *next;
 
-       for (iter = applet->secrets_reqs; iter; iter = g_slist_next (iter)) {
+       for (iter = applet->secrets_reqs; iter; iter = next) {
                SecretsRequest *req = iter->data;
 
+               next = g_slist_next (iter);
+
                if (req->reqid == request_id) {
                        /* cancel and free this password request */
                        applet_secrets_request_free (req);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]