From 8361e43415cee13c27623e00876a38bc879361d1 Mon Sep 17 00:00:00 2001 From: Lucas GAUTHERON Date: Mon, 16 Dec 2013 12:50:50 +0000 Subject: [PATCH] escape special characters in MS requests git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7685 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/serverbrowser.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/src/serverbrowser.cpp b/source/src/serverbrowser.cpp index 3185cb60..da58ed7f 100644 --- a/source/src/serverbrowser.cpp +++ b/source/src/serverbrowser.cpp @@ -1298,14 +1298,19 @@ void retrieveservers(vector &data) { if(mastertype == AC_MASTER_HTTP) { + CURL *curl = curl_easy_init(); + + char *pname = curl_easy_escape(curl, global_name, 0); string request; - sprintf(request, "http://%s/retrieve.do?action=list&name=%s&version=%d&build=%d", mastername, global_name, AC_VERSION, getbuildtype()|(1<<16)); + sprintf(request, "http://%s/retrieve.do?action=list&name=%s&version=%d&build=%d", mastername, pname, AC_VERSION, getbuildtype()|(1<<16)); + curl_free(pname); const char *tmpname = findfile(path("config/servers.cfg", true), "wb"); FILE *outfile = fopen(tmpname, "w+"); if(!outfile) { conoutf("\f3cannot write server list"); + curl_easy_cleanup(curl); return; } @@ -1315,8 +1320,6 @@ void retrieveservers(vector &data) rd->starttime = SDL_GetTicks(); rd->timeout = 0; - - CURL *curl = curl_easy_init(); int result = 0, httpresult = 0; curl_easy_setopt(curl, CURLOPT_URL, request);