summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/util_str.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c
index 886ae2a043..a0ca03a972 100644
--- a/source3/lib/util_str.c
+++ b/source3/lib/util_str.c
@@ -92,6 +92,7 @@ static bool next_token_internal_talloc(TALLOC_CTX *ctx,
bool ltrim)
{
char *s;
+ char *saved_s;
char *pbuf;
bool quoted;
size_t len=1;
@@ -116,9 +117,12 @@ static bool next_token_internal_talloc(TALLOC_CTX *ctx,
/* nothing left? */
if (!*s) {
- return(false);
+ return false;
}
+ /* When restarting we need to go from here. */
+ saved_s = s;
+
/* Work out the length needed. */
for (quoted = false; *s &&
(quoted || !strchr_m(sep,*s)); s++) {
@@ -137,6 +141,7 @@ static bool next_token_internal_talloc(TALLOC_CTX *ctx,
/* copy over the token */
pbuf = *pp_buff;
+ s = saved_s;
for (quoted = false; *s &&
(quoted || !strchr_m(sep,*s)); s++) {
if ( *s == '\"' ) {