When the pointer 'from' changes, it's stored length needs to change as
well. Notified by Frank Kardel <kardel@acm.org> in PR 879.
This commit is contained in:
@@ -632,6 +632,11 @@ static int str_copy(CONF *conf, char *section, char **pto, char *from)
|
|||||||
BUF_MEM_grow_clean(buf,(strlen(p)+len-(e-from)));
|
BUF_MEM_grow_clean(buf,(strlen(p)+len-(e-from)));
|
||||||
while (*p)
|
while (*p)
|
||||||
buf->data[to++]= *(p++);
|
buf->data[to++]= *(p++);
|
||||||
|
|
||||||
|
/* Since we change the pointer 'from', we also have
|
||||||
|
to change the perceived length of the string it
|
||||||
|
points at. /RL */
|
||||||
|
len -= e-from;
|
||||||
from=e;
|
from=e;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user