Index: ossp-pkg/lmtp2nntp/lmtp2nntp_option.c RCS File: /v/ossp/cvs/ossp-pkg/lmtp2nntp/lmtp2nntp_option.c,v rcsdiff -q -kk '-r1.20' '-r1.21' -u '/v/ossp/cvs/ossp-pkg/lmtp2nntp/lmtp2nntp_option.c,v' 2>/dev/null --- lmtp2nntp_option.c 2002/07/02 07:49:01 1.20 +++ lmtp2nntp_option.c 2002/08/14 12:30:16 1.21 @@ -319,18 +319,17 @@ try { int largc; - char *cpNew; v.largv = (char **)mallocex((1 + 1) * sizeof(char **)); largc = 0; - v.largv[largc++] = "leftover"; + v.largv[largc] = NULL; + v.largv[largc++] = strdupex("leftover"); v.largv[largc] = NULL; while ((cp = (char *)popt_getarg(poptCon)) != NULL) { - v.largv = (char **)reallocex(v.largv, (largc + 2) * sizeof(char **)); - v.largv[largc++] = "--newsgroup"; + v.largv = (char **)reallocex(v.largv, (1 + largc + 2) * sizeof(char **)); + v.largv[largc++] = strdupex("--newsgroup"); v.largv[largc] = NULL; - cpNew = strdupex(cp); - v.largv[largc++] = cpNew; + v.largv[largc++] = strdupex(cp); v.largv[largc] = NULL; } if (largc > 1) { @@ -340,8 +339,11 @@ } } cleanup { - if (v.largv != NULL) + if (v.largv != NULL) { + for (i = 0; v.largv[i] != NULL; i++) + free(v.largv[i]); free(v.largv); + } } catch(ex) { rethrow;