Fix "use-after-relocate" in stream_to_string

cvalue_string() can cause a gc - this potentially makes the ios_t-pointer that is cached in the local variable "st" invalid.
This commit is contained in:
jniewerth 2017-08-20 13:30:03 +02:00 committed by Lassi Kortela
parent 54a10c2f4f
commit 0b6dd2ca11
1 changed files with 1 additions and 1 deletions

View File

@ -389,7 +389,7 @@ value_t stream_to_string(value_t *ps)
n = st->size; n = st->size;
str = cvalue_string(n); str = cvalue_string(n);
memcpy(cvalue_data(str), value2c(ios_t*,*ps)->buf, n); memcpy(cvalue_data(str), value2c(ios_t*,*ps)->buf, n);
ios_trunc(st, 0); ios_trunc(value2c(ios_t*,*ps), 0);
} }
else { else {
char *b = ios_takebuf(st, &n); n--; char *b = ios_takebuf(st, &n); n--;