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



commit 597c6880cf4516ac788284d439ed59ff398e57cd
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
    
    (cherry picked from commit 10c78cb60818cb005e105fb71b74e47d93f53688)

 src/applet.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/src/applet.c b/src/applet.c
index 39ea8e4..7a79622 100644
--- a/src/applet.c
+++ b/src/applet.c
@@ -3241,11 +3241,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]