From 9c32564085de877b9fd98aeddc09812fe9b6efb5 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sat, 1 Jun 2019 13:25:14 +0100 Subject: html_script.c: html_script_exec() reqacquire script ptr Since executing a script can cause more scripts to be appended to the script array, and that can cause a reallocation which might move the script array, reacquire the script pointer after running the script so that we don't wander off into the reeds. Signed-off-by: Daniel Silverstone --- content/handlers/html/html_script.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'content/handlers/html') diff --git a/content/handlers/html/html_script.c b/content/handlers/html/html_script.c index 203dc5089..2a72d512e 100644 --- a/content/handlers/html/html_script.c +++ b/content/handlers/html/html_script.c @@ -96,6 +96,11 @@ nserror html_script_exec(html_content *c, bool allow_defer) s->data.handle, &size ); script_handler(c->jscontext, data, size, nsurl_access(hlcache_handle_get_url(s->data.handle))); + /* We have to re-acquire this here since the + * c->scripts array may have been reallocated + * as a result of executing this script. + */ + s = &(c->scripts[i]); s->already_started = true; -- cgit v1.2.3