summaryrefslogtreecommitdiffstats
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
commit72b749ec89fa3642c0b3330a5331be645f84e24c (patch)
tree8fea6168e63b3cd752c4c277306c90843f23b69f
parent2d1c6d1f6b55a0a78eb8afbe16d2ad8b3253a220 (diff)
downloadsamba-72b749ec89fa3642c0b3330a5331be645f84e24c.tar.gz
samba-72b749ec89fa3642c0b3330a5331be645f84e24c.tar.xz
samba-72b749ec89fa3642c0b3330a5331be645f84e24c.zip
use next_token instead of strtok.
single elemnts of list cannot be longer than a pstring (1024B now)
-rw-r--r--source/param/loadparm.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/source/param/loadparm.c b/source/param/loadparm.c
index edda04c36bf..1527dd1e695 100644
--- a/source/param/loadparm.c
+++ b/source/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;
}