diff --git a/content/fetchers/fetch_data.c b/content/fetchers/fetch_data.c index a24fcd1e9..30274f51e 100644 --- a/content/fetchers/fetch_data.c +++ b/content/fetchers/fetch_data.c @@ -141,6 +141,7 @@ static bool fetch_data_process(struct fetch_data_context *c) char *params; char *comma; char *unescaped; + int templen; /* format of a data: URL is: * data:[][;base64], @@ -191,13 +192,11 @@ static bool fetch_data_process(struct fetch_data_context *c) /* we URL unescape the data first, just incase some insane page * decides to nest URL and base64 encoding. Like, say, Acid2. - * - * Note: the odd cast via void* is to prevent type-punning issues. - * we can be confident that size_t is at least as well aligned - * as int will be. */ - unescaped = curl_easy_unescape(curl, comma + 1, 0, (int *)((void *)&c->datalen)); - if (unescaped == NULL) { + templen = c->datalen; + unescaped = curl_easy_unescape(curl, comma + 1, 0, &templen); + c->datalen = templen; + if (unescaped == NULL) { fetch_data_send_callback(FETCH_ERROR, c, "Unable to URL decode data: URL", 0); return false;