# HG changeset patch # User Andrew Gaul # Date 1204271720 0 # Node ID f332db29a85449a2faa48b9d37dd7c7796689491 # Parent 2e5ba07ed81a2647a5aeeacaf2fb9bb77bf9db7e Fixes a memleak: ==17163== 7 bytes in 1 blocks are definitely lost in loss record 7 of 214 ==17163== at 0x4006A6E: malloc (vg_replace_malloc.c:207) ==17163== by 0xA1CAF5: g_malloc (in /lib/libglib-2.0.so.0.1400.6) ==17163== by 0xA35348: g_strdup (in /lib/libglib-2.0.so.0.1400.6) ==17163== by 0xA35BF9: g_strsplit (in /lib/libglib-2.0.so.0.1400.6) ==17163== by 0x52D5DF2: irc_cmd_op (cmds.c:290) committer: Ka-Hing Cheung diff -r 2e5ba07ed81a -r f332db29a854 libpurple/protocols/irc/cmds.c --- a/libpurple/protocols/irc/cmds.c Fri Feb 29 04:31:07 2008 +0000 +++ b/libpurple/protocols/irc/cmds.c Fri Feb 29 07:55:20 2008 +0000 @@ -294,17 +294,15 @@ ops = g_new0(char *, i * 2 + 1); for (i = 0; nicks[i]; i++) { - if (!*nicks[i]) { - g_free(nicks[i]); - continue; + if (*nicks[i]) { + ops[used++] = mode; + ops[used++] = nicks[i]; } - ops[used++] = mode; - ops[used++] = nicks[i]; } irc_do_mode(irc, target, sign, ops); g_free(ops); - g_free(nicks); /* No, not g_strfreev */ + g_strfreev(nicks); return 0; }