summaryrefslogtreecommitdiff
path: root/src/lib-popt/poptparse.c
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2000-10-26 18:57:23 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2000-10-26 18:57:23 +0000
commite0bc134d66fcb1c0a901e82973701e652c2b5cd0 (patch)
tree6dc20d6c8400b349b41aa2a52a015782103d95a9 /src/lib-popt/poptparse.c
parentdf10f182c019e7cda96793de193e30e66ab2abfc (diff)
downloadirssi-e0bc134d66fcb1c0a901e82973701e652c2b5cd0.zip
Win32 updates
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@784 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/lib-popt/poptparse.c')
-rw-r--r--src/lib-popt/poptparse.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib-popt/poptparse.c b/src/lib-popt/poptparse.c
index 181ec1ac..6e412834 100644
--- a/src/lib-popt/poptparse.c
+++ b/src/lib-popt/poptparse.c
@@ -29,7 +29,7 @@ int poptParseArgvString(const char * s, int * argcPtr, char *** argvPtr) {
int i, buflen;
buflen = strlen(s) + 1;
- bufStart = buf = alloca(buflen);
+ bufStart = buf = malloc(buflen);
memset(buf, '\0', buflen);
src = s;
@@ -43,6 +43,7 @@ int poptParseArgvString(const char * s, int * argcPtr, char *** argvPtr) {
src++;
if (!*src) {
free(argv);
+ free(bufStart);
return POPT_ERROR_BADQUOTE;
}
if (*src != quote) *buf++ = '\\';
@@ -66,6 +67,7 @@ int poptParseArgvString(const char * s, int * argcPtr, char *** argvPtr) {
src++;
if (!*src) {
free(argv);
+ free(bufStart);
return POPT_ERROR_BADQUOTE;
}
/* fallthrough */
@@ -95,5 +97,6 @@ int poptParseArgvString(const char * s, int * argcPtr, char *** argvPtr) {
*argvPtr = argv2;
*argcPtr = argc;
+ free(bufStart);
return 0;
}