From 703b5fea73f9bbdb4f41aebcd75f71d32d340a2d Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sun, 18 Mar 2007 17:09:55 +0000 Subject: Ensure content owners check that they are still interested in a content when receiving notification that the content's in error. This prevents content pointers being corrupted when redirects occur. Fixes 1522002, 1551475. svn path=/trunk/netsurf/; revision=3211 --- css/css.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'css/css.c') diff --git a/css/css.c b/css/css.c index 3ba3da872..589f0cc78 100644 --- a/css/css.c +++ b/css/css.c @@ -919,9 +919,16 @@ void css_atimport_callback(content_msg msg, struct content *css, #endif /* todo: handle AUTH and SSL */ case CONTENT_MSG_ERROR: - c->data.css.import_content[i] = 0; - c->active--; - content_add_error(c, "?", 0); + /* The stylesheet we were fetching may have been + * redirected, in that case, the object pointers + * will differ, so ensure that the object that's + * in error is still in use by us before invalidating + * the pointer */ + if (c->data.css.import_content[i] == css) { + c->data.css.import_content[i] = 0; + c->active--; + content_add_error(c, "?", 0); + } break; case CONTENT_MSG_STATUS: -- cgit v1.2.3