summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2001-06-21 23:33:12 +0000
committerSimo Sorce <idra@samba.org>2001-06-21 23:33:12 +0000
commit2e20f1147c70a86b1583613ac99fdb01af042256 (patch)
tree67a34bec07c869be6274a5245aecf11a21c06a9a
parent460c9061909de2715eb1ff6737402d017e346d66 (diff)
downloadsamba-2e20f1147c70a86b1583613ac99fdb01af042256.tar.gz
samba-2e20f1147c70a86b1583613ac99fdb01af042256.tar.bz2
samba-2e20f1147c70a86b1583613ac99fdb01af042256.zip
use next_token instead of strtok.
single elemnts of list cannot be longer than a pstring (1024B now) (This used to be commit 72b749ec89fa3642c0b3330a5331be645f84e24c)
-rw-r--r--source3/param/loadparm.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index edda04c36b..1527dd1e69 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -3677,13 +3677,14 @@ char *lp_printername(int snum)
char **lp_list_make(char *string)
{
char **list, **rlist;
- char *str;
- char *tok;
+ char *str, *s;
int num, lsize;
+ pstring tok;
if (!string || !*string) return NULL;
- str = strdup(string);
+ s = strdup(string);
if (!str || !*str) return NULL;
+ str = s;
list = (char**)malloc(((sizeof(char**)) * P_LIST_ABS));
if (!list) {
@@ -3695,9 +3696,9 @@ char **lp_list_make(char *string)
num = 0;
- for (tok = strtok(str, LIST_SEP); tok; tok = strtok(NULL, LIST_SEP))
+ while (*str)
{
- if (!*tok) continue;
+ if (!next_token(&str, tok, LIST_SEP, sizeof(pstring))) continue;
if ((num +1) == lsize) {
lsize += P_LIST_ABS;
@@ -3721,7 +3722,7 @@ char **lp_list_make(char *string)
num++;
}
- free (str);
+ free (s);
return list;
}