mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-22 20:16:54 +03:00
when walking the css imports ensure the content is present before dereferencing it
css import entries may not have a valid content if the resource failed to load or was unsuitable in some otehr way. The save_complete iterator did not cope with this. fixes #2166
This commit is contained in:
parent
5ce4f11eac
commit
89a02c3a8f
@ -575,14 +575,14 @@ css_error nscss_handle_import(void *pw, css_stylesheet *parent,
|
||||
/* Create content */
|
||||
c->imports[c->import_count].media = media;
|
||||
|
||||
/* TODO: Why aren't we getting a relative url part, to join? */
|
||||
/** \todo Why aren't we getting a relative url part, to join? */
|
||||
nerror = nsurl_create(lwc_string_data(url), &ns_url);
|
||||
if (nerror != NSERROR_OK) {
|
||||
free(ctx);
|
||||
return CSS_NOMEM;
|
||||
}
|
||||
|
||||
/* TODO: Constructing nsurl for referer here is silly, avoid */
|
||||
/** \todo Constructing nsurl for referer here is silly, avoid */
|
||||
nerror = nsurl_create(referer, &ns_ref);
|
||||
if (nerror != NSERROR_OK) {
|
||||
nsurl_unref(ns_url);
|
||||
|
@ -355,8 +355,11 @@ static bool save_complete_save_imported_sheets(save_complete_ctx *ctx,
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < import_count; i++) {
|
||||
if (save_complete_save_stylesheet(ctx, imports[i].c) == false)
|
||||
return false;
|
||||
/* treat a valid content as a stylesheet to save */
|
||||
if ((imports[i].c != NULL) &&
|
||||
(save_complete_save_stylesheet(ctx, imports[i].c) == false)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user