Better, safer fix for the type punning issue

svn path=/trunk/netsurf/; revision=5562
This commit is contained in:
Daniel Silverstone 2008-10-13 16:39:54 +00:00
parent 1108d1d1c5
commit 5c01ca3306

View File

@ -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,12 +192,10 @@ 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));
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);