A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
kill an unused variable, fix a segfault after resizing the buffer while varsubsting...
[simgrid.git]
/
src
/
xbt
/
xbt_strbuff.c
diff --git
a/src/xbt/xbt_strbuff.c
b/src/xbt/xbt_strbuff.c
index
50e475a
..
9e5e949
100644
(file)
--- a/
src/xbt/xbt_strbuff.c
+++ b/
src/xbt/xbt_strbuff.c
@@
-102,13
+102,13
@@
void xbt_strbuff_trim(xbt_strbuff_t b) {
*/
void xbt_strbuff_varsubst(xbt_strbuff_t b, xbt_dict_t patterns) {
*/
void xbt_strbuff_varsubst(xbt_strbuff_t b, xbt_dict_t patterns) {
- char *
beg, *
end; /* pointers around the parsed chunk */
+ char *end; /* pointers around the parsed chunk */
int in_simple_quote=0, in_double_quote=0;
int done = 0;
if (b->data[0] == '\0')
return;
int in_simple_quote=0, in_double_quote=0;
int done = 0;
if (b->data[0] == '\0')
return;
- end = b
eg = b
->data;
+ end = b->data;
while (!done) {
while (!done) {
@@
-228,10
+228,11
@@
void xbt_strbuff_varsubst(xbt_strbuff_t b, xbt_dict_t patterns) {
int offset = newdata - b->data;
b->data = newdata;
b->size = b->used + MAX(minimal_increment,tooshort);
int offset = newdata - b->data;
b->data = newdata;
b->size = b->used + MAX(minimal_increment,tooshort);
+ end += offset;
beg_subst += offset;
end_subst += offset;
}
beg_subst += offset;
end_subst += offset;
}
- memmove(beg_subst+val_len,end_subst, b->used-(end_subst - b->data)+
1
); /* move the end of the string a bit further */
+ memmove(beg_subst+val_len,end_subst, b->used-(end_subst - b->data)+
2
); /* move the end of the string a bit further */
memmove(beg_subst,value,val_len); /* substitute */
b->used = newused;
}
memmove(beg_subst,value,val_len); /* substitute */
b->used = newused;
}