loolwsd/LOOLWSD.cpp |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

New commits:
commit 1d2ec09cb8da03f1419391518e2b5aef383c65ce
Author: Jan Holesovsky <ke...@collabora.com>
Date:   Wed Jan 13 16:54:19 2016 +0100

    loolwsd: More protection when inserting image.

diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp
index 1043a74..c1434e1 100644
--- a/loolwsd/LOOLWSD.cpp
+++ b/loolwsd/LOOLWSD.cpp
@@ -300,16 +300,18 @@ public:
                 Poco::Net::HTMLForm form(request, request.stream(), handler);
 
                 bool goodRequest = form.has("childid") && form.has("name");
+                std::string formChildid(form.get("childid"));
                 std::string formName(form.get("name"));
 
-                if (goodRequest && formName.find('/') != std::string::npos)
+                // protect against attempts to inject something funny here
+                if (goodRequest && formChildid.find('/') != std::string::npos 
&& formName.find('/') != std::string::npos)
                     goodRequest = false;
 
                 if (goodRequest)
                 {
                     try {
-                        std::cout << Util::logPrefix() << "Perform insertfile: 
" << form.get("childid") << ", " << form.get("name") << std::endl;
-                        std::string dirPath = LOOLWSD::childRoot + 
Path::separator() + form.get("childid") + LOOLSession::jailDocumentURL +
+                        std::cout << Util::logPrefix() << "Perform insertfile: 
" << formChildid << ", " << formName << std::endl;
+                        std::string dirPath = LOOLWSD::childRoot + 
Path::separator() + formChildid + LOOLSession::jailDocumentURL +
                             Path::separator() + "insertfile";
                         File(dirPath).createDirectories();
                         std::string fileName = dirPath + Path::separator() + 
formName;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to