vlc/vlc-3.0 | branch: master | Francois Cartegnie <[email protected]> | Tue Apr 23 15:50:05 2019 +0200| [7a0a9bd6298d2d0754ad89f9af23e4b1ac6ce87d] | committer: Francois Cartegnie
demux: adaptive: sanitize user-agent (fix #20813) pretty useless since we can no longer change it... (cherry picked from commit aa98792614777b86b052c2ec03deac57ca3da1e9) > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=7a0a9bd6298d2d0754ad89f9af23e4b1ac6ce87d --- modules/demux/adaptive/http/HTTPConnection.cpp | 10 +++++++--- modules/demux/adaptive/http/HTTPConnection.hpp | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/demux/adaptive/http/HTTPConnection.cpp b/modules/demux/adaptive/http/HTTPConnection.cpp index 451e81d2bd..5fc0144e14 100644 --- a/modules/demux/adaptive/http/HTTPConnection.cpp +++ b/modules/demux/adaptive/http/HTTPConnection.cpp @@ -70,7 +70,12 @@ HTTPConnection::HTTPConnection(vlc_object_t *p_object_, AuthStorage *auth, : AbstractConnection( p_object_ ) { transport = socket_; - psz_useragent = var_InheritString(p_object_, "http-user-agent"); + char *psz_useragent = var_InheritString(p_object_, "http-user-agent"); + useragent = psz_useragent ? std::string(psz_useragent) : std::string(""); + free(psz_useragent); + for(std::string::iterator it = useragent.begin(); it != useragent.end(); ++it) + if(!std::isprint(*it)) + *it = ' '; queryOk = false; retries = 0; authStorage = auth; @@ -83,7 +88,6 @@ HTTPConnection::HTTPConnection(vlc_object_t *p_object_, AuthStorage *auth, HTTPConnection::~HTTPConnection() { - free(psz_useragent); delete transport; } @@ -433,7 +437,7 @@ std::string HTTPConnection::buildRequestHeader(const std::string &path) const req << "Cookie: " << cookie << "\r\n"; } req << "Cache-Control: no-cache" << "\r\n" << - "User-Agent: " << std::string(psz_useragent) << "\r\n"; + "User-Agent: " << useragent << "\r\n"; req << extraRequestHeaders(); return req.str(); } diff --git a/modules/demux/adaptive/http/HTTPConnection.hpp b/modules/demux/adaptive/http/HTTPConnection.hpp index c95ce15798..343336f0db 100644 --- a/modules/demux/adaptive/http/HTTPConnection.hpp +++ b/modules/demux/adaptive/http/HTTPConnection.hpp @@ -93,7 +93,7 @@ namespace adaptive ssize_t readChunk (void *p_buffer, size_t len); int parseReply(); std::string readLine(); - char * psz_useragent; + std::string useragent; AuthStorage *authStorage; ConnectionParams locationparams; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
