--- libaitsess/src/sess.c 2010/09/01 20:24:20 1.1.1.1.2.4 +++ libaitsess/src/sess.c 2010/09/01 21:07:10 1.1.1.1.2.5 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: sess.c,v 1.1.1.1.2.4 2010/09/01 20:24:20 misho Exp $ +* $Id: sess.c,v 1.1.1.1.2.5 2010/09/01 21:07:10 misho Exp $ * *************************************************************************/ #include "global.h" @@ -11,6 +11,21 @@ /* + * sess_FreeValues() Free all values from value array allocated from sess_GetValues() + * @ppsVals = Array strings + * return: none +*/ +inline void sess_FreeValues(char *** __restrict ppsVals) +{ + char **ptr; + + for (ptr = *ppsVals; *ptr; ptr++) + free(*ptr); + free(*ppsVals); + *ppsVals = NULL; +} + +/* * sess_GetValues() Get all values from session shared memory * @s = Session item * @ppsVals = Return array strings @@ -29,7 +44,7 @@ int sess_GetValues(tagSess * __restrict s, char ***pps LOGERR; return -1; } else - memset(valz, 0, sizeof(caddr_t)); + *valz = NULL; // allocated memory & mirrored shared memory into this Shared = malloc(s->eom); @@ -53,12 +68,13 @@ int sess_GetValues(tagSess * __restrict s, char ***pps free(Shared); return -1; } else - memset(valz[i], 0, sizeof(caddr_t)); + valz[i] = NULL; valz[i - 1] = strdup(peer); } free(Shared); + *ppsVals = valz; return i; }