Changeset 05816dd


Ignore:
Timestamp:
2015-02-22T22:44:40Z (5 years ago)
Author:
dequis <dx@…>
Branches:
master
Children:
570f183
Parents:
91f06e5
git-author:
dequis <dx@…> (22-02-15 22:04:08)
git-committer:
dequis <dx@…> (22-02-15 22:44:40)
Message:

coverity: Fix some (harmless?) use-after-free with g_slist_remove()

These were passing a pointer to a variable right after it was g_free()'d

They are most likely harmless as g_slist_remove() probably just needs
the pointer location, but fixing it anyway.

Files:
7 edited

Legend:

Unmodified
Added
Removed
  • ipc.c

    r91f06e5 r05816dd  
    776776        }
    777777
     778        child_list = g_slist_remove(child_list, c);
     779
    778780        g_free(c->host);
    779781        g_free(c->nick);
     
    781783        g_free(c->password);
    782784        g_free(c);
    783 
    784         child_list = g_slist_remove(child_list, c);
    785785
    786786        /* Also, if any child has a reference to this one, remove it. */
  • lib/oauth.c

    r91f06e5 r05816dd  
    107107                if (strncmp((char *) l->data, key, key_len) == 0 &&
    108108                    ((char *) l->data)[key_len] == '=') {
     109                        *params = g_slist_remove(*params, l->data);
    109110                        g_free(l->data);
    110                         *params = g_slist_remove(*params, l->data);
    111111                }
    112112        }
  • protocols/bee_user.c

    r91f06e5 r05816dd  
    6868        }
    6969
     70        bee->users = g_slist_remove(bee->users, bu);
     71
    7072        g_free(bu->handle);
    7173        g_free(bu->fullname);
     
    7476        g_free(bu->status_msg);
    7577        g_free(bu);
    76 
    77         bee->users = g_slist_remove(bee->users, bu);
    7878
    7979        return 1;
  • protocols/msn/msn.c

    r91f06e5 r05816dd  
    112112                while (md->groups) {
    113113                        struct msn_group *mg = md->groups->data;
     114                        md->groups = g_slist_remove(md->groups, mg);
    114115                        g_free(mg->id);
    115116                        g_free(mg->name);
    116117                        g_free(mg);
    117                         md->groups = g_slist_remove(md->groups, mg);
    118118                }
    119119
     
    127127                while (md->grpq) {
    128128                        struct msn_groupadd *ga = md->grpq->data;
     129                        md->grpq = g_slist_remove(md->grpq, ga);
    129130                        g_free(ga->group);
    130131                        g_free(ga->who);
    131132                        g_free(ga);
    132                         md->grpq = g_slist_remove(md->grpq, ga);
    133133                }
    134134
  • protocols/msn/ns.c

    r91f06e5 r05816dd  
    944944                struct msn_message *m = (*msgq)->data;
    945945
     946                *msgq = g_slist_remove(*msgq, m);
    946947                g_free(m->who);
    947948                g_free(m->text);
    948949                g_free(m);
    949 
    950                 *msgq = g_slist_remove(*msgq, m);
    951         }
    952 }
     950        }
     951}
  • protocols/msn/sb.c

    r91f06e5 r05816dd  
    519519                                        }
    520520                                }
     521                                sb->msgq = g_slist_remove(sb->msgq, m);
    521522                                g_free(m->text);
    522523                                g_free(m->who);
    523524                                g_free(m);
    524 
    525                                 sb->msgq = g_slist_remove(sb->msgq, m);
    526525                        }
    527526
  • protocols/yahoo/yahoo.c

    r91f06e5 r05816dd  
    733733                inp = l->data;
    734734                if (inp->h == tag) {
     735                        byahoo_inputs = g_slist_remove(byahoo_inputs, inp);
    735736                        g_free(inp->d);
    736737                        g_free(inp);
    737                         byahoo_inputs = g_slist_remove(byahoo_inputs, inp);
    738738                        break;
    739739                }
Note: See TracChangeset for help on using the changeset viewer.