aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormontellese <montellese@xbmc.org>2013-10-24 21:21:32 +0200
committermontellese <montellese@xbmc.org>2013-10-24 21:22:06 +0200
commitc17c1dbab9f0e3a3d0362e440d24d1b06e847445 (patch)
treef458e79f811dae7ae79faa3a7ba631732cabea91
parente7de3e783cfeb0ef7f4ee252360c2d53fd20f9cb (diff)
downloadxbmc-c17c1dbab9f0e3a3d0362e440d24d1b06e847445.tar.xz
webserver: fix crash on HTTP GET arguments without a "=" (fixes #14650)
-rw-r--r--xbmc/network/WebServer.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/xbmc/network/WebServer.cpp b/xbmc/network/WebServer.cpp
index 82625e19b5..9fa969c698 100644
--- a/xbmc/network/WebServer.cpp
+++ b/xbmc/network/WebServer.cpp
@@ -75,15 +75,21 @@ CWebServer::CWebServer()
int CWebServer::FillArgumentMap(void *cls, enum MHD_ValueKind kind, const char *key, const char *value)
{
+ if (cls == NULL || key == NULL)
+ return MHD_NO;
+
map<string, string> *arguments = (map<string, string> *)cls;
- arguments->insert(pair<string,string>(key,value));
+ arguments->insert(pair<string, string>(key, value != NULL ? value : StringUtils::Empty));
return MHD_YES;
}
int CWebServer::FillArgumentMultiMap(void *cls, enum MHD_ValueKind kind, const char *key, const char *value)
{
+ if (cls == NULL || key == NULL)
+ return MHD_NO;
+
multimap<string, string> *arguments = (multimap<string, string> *)cls;
- arguments->insert(pair<string,string>(key,value));
+ arguments->insert(pair<string, string>(key, value != NULL ? value : StringUtils::Empty));
return MHD_YES;
}