From: pk910 Date: Mon, 30 Jan 2012 16:11:20 +0000 (+0100) Subject: fixed memory leak in tools.c and fixed allocation size of ChanUser entries X-Git-Tag: v5.3~37 X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=commitdiff_plain;h=ec4e52748e5dbb08f49e679c0f22b0da43149713 fixed memory leak in tools.c and fixed allocation size of ChanUser entries --- diff --git a/src/ChanUser.c b/src/ChanUser.c index b9ffde3..795d237 100644 --- a/src/ChanUser.c +++ b/src/ChanUser.c @@ -21,7 +21,7 @@ #include "UserNode.h" struct ChanUser* addChanUser(struct ChanNode *chan, struct UserNode *user) { - struct ChanUser *chanuser = malloc(sizeof(*chan)); + struct ChanUser *chanuser = malloc(sizeof(*chanuser)); if (!chanuser) { perror("malloc() failed"); @@ -49,7 +49,7 @@ struct ChanUser* addChanUser(struct ChanNode *chan, struct UserNode *user) { } struct ChanUser* addInvisibleChanUser(struct ChanNode *chan, struct UserNode *user) { - struct ChanUser *chanuser = malloc(sizeof(*chan)); + struct ChanUser *chanuser = malloc(sizeof(*chanuser)); if (!chanuser) { perror("malloc() failed"); diff --git a/src/tools.c b/src/tools.c index 2cb1065..51402a0 100644 --- a/src/tools.c +++ b/src/tools.c @@ -416,6 +416,8 @@ void flushModeBuffer(struct ModeBuffer *modeBuf) { modeStr[modePos++] = modeBuf->addModes[i]; if(modeBuf->addModesParams[i]) { paramPos += sprintf(paramStr + paramPos, " %s", modeBuf->addModesParams[i]); + free(modeBuf->addModesParams[i]); + modeBuf->addModesParams[i] = NULL; } } modeBuf->addCount = 0; @@ -426,6 +428,8 @@ void flushModeBuffer(struct ModeBuffer *modeBuf) { modeStr[modePos++] = modeBuf->delModes[i]; if(modeBuf->delModesParams[i]) { paramPos += sprintf(paramStr + paramPos, " %s", modeBuf->delModesParams[i]); + free(modeBuf->delModesParams[i]); + modeBuf->delModesParams[i] = NULL; } } modeBuf->delCount = 0;