version 0.1.10
[fms.git] / src / http / pages / showcaptchapage.cpp
index abd65b3..46a4d3d 100644 (file)
@@ -11,7 +11,7 @@ const std::string ShowCaptchaPage::GeneratePage(const std::string &method, const
        std::string content="HTTP/1.1 200 OK\r\n";\r
        if(queryvars.find("UUID")!=queryvars.end())\r
        {\r
-               SQLite3DB::Statement st=m_db->Prepare("SELECT MimeType,PuzzleData FROM tblIntroductionPuzzleRequests WHERE UUID=?;");\r
+               SQLite3DB::Statement st=m_db->Prepare("SELECT MimeType,PuzzleData FROM tblIntroductionPuzzleRequests WHERE Type='captcha' AND UUID=?;");\r
                st.Bind(0,(*queryvars.find("UUID")).second);\r
                st.Step();\r
 \r
@@ -27,9 +27,13 @@ const std::string ShowCaptchaPage::GeneratePage(const std::string &method, const
                        Base64::Decode(b64data,data);\r
                        StringFunctions::Convert(data.size(),lenstr);\r
 \r
-                       content+="Content-Type: "+mime+"\r\n";\r
-                       content+="Content-Length: "+lenstr+"\r\n\r\n";\r
-                       content+=std::string(data.begin(),data.end());\r
+                       // mime type should be short and have a / in it - otherwise skip\r
+                       if(mime.size()<50 && mime.find("/")!=std::string::npos)\r
+                       {\r
+                               content+="Content-Type: "+mime+"\r\n";\r
+                               content+="Content-Length: "+lenstr+"\r\n\r\n";\r
+                               content+=std::string(data.begin(),data.end());\r
+                       }\r
                }\r
        }\r
        return content;\r