summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--content/fetchers/fetch_data.c11
1 files changed, 5 insertions, 6 deletions
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:[<mimetype>][;base64],<data>
@@ -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;