diff options
author | montellese <montellese@xbmc.org> | 2013-10-24 21:21:32 +0200 |
---|---|---|
committer | montellese <montellese@xbmc.org> | 2013-10-24 21:22:06 +0200 |
commit | c17c1dbab9f0e3a3d0362e440d24d1b06e847445 (patch) | |
tree | f458e79f811dae7ae79faa3a7ba631732cabea91 | |
parent | e7de3e783cfeb0ef7f4ee252360c2d53fd20f9cb (diff) |
webserver: fix crash on HTTP GET arguments without a "=" (fixes #14650)
-rw-r--r-- | xbmc/network/WebServer.cpp | 10 |
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; } |