Mercurial > pidgin
diff libpurple/upnp.c @ 23684:de8f2d3e538a
Add temporary purple_util_fetch_url_request_len and purple_util_fetch_url_len
to enable restricting the length of HTTP downloads.
Set a maximum size of 128kB to the UPnP-related downloads.
Thanks to Andrew Hunt and Christian Grothoff for discovering the issue and
providing a solution.
| author | Daniel Atallah <daniel.atallah@gmail.com> |
|---|---|
| date | Fri, 08 Aug 2008 23:34:27 +0000 |
| parents | c38d72677c8a |
| children | fae699fece1f |
line wrap: on
line diff
--- a/libpurple/upnp.c Fri Aug 08 20:33:25 2008 +0000 +++ b/libpurple/upnp.c Fri Aug 08 23:34:27 2008 +0000 @@ -41,6 +41,8 @@ #define HTTP_OK "200 OK" #define DEFAULT_HTTP_PORT 80 #define DISCOVERY_TIMEOUT 1000 +/* limit UPnP-triggered http downloads to 128k */ +#define MAX_UPNP_DOWNLOAD (128 * 1024) /*************************************************************** ** Discovery/Description Defines * @@ -443,8 +445,8 @@ purple_timeout_remove(dd->tima); dd->tima = 0; - purple_util_fetch_url_request(descriptionURL, TRUE, NULL, TRUE, httpRequest, - TRUE, upnp_parse_description_cb, dd); + purple_util_fetch_url_request_len(descriptionURL, TRUE, NULL, TRUE, httpRequest, + TRUE, MAX_UPNP_DOWNLOAD, upnp_parse_description_cb, dd); g_free(httpRequest); @@ -708,8 +710,8 @@ g_free(pathOfControl); g_free(soapMessage); - gfud = purple_util_fetch_url_request(control_info.control_url, FALSE, NULL, TRUE, - totalSendMessage, TRUE, cb, cb_data); + gfud = purple_util_fetch_url_request_len(control_info.control_url, FALSE, NULL, TRUE, + totalSendMessage, TRUE, MAX_UPNP_DOWNLOAD, cb, cb_data); g_free(totalSendMessage); g_free(addressOfControl); @@ -1047,7 +1049,7 @@ { static int handle; - return &handle; + return &handle; } void @@ -1055,5 +1057,5 @@ { purple_signal_connect(purple_network_get_handle(), "network-configuration-changed", purple_upnp_get_handle(), PURPLE_CALLBACK(purple_upnp_network_config_changed_cb), - GINT_TO_POINTER(0)); + NULL); }
