Ticket #9301: mythbackend.patch
File mythbackend.patch, 3.0 KB (added by , 13 years ago) |
---|
-
mythtv/programs/mythbackend/mythxml.cpp
123 123 if (sURI == "GetVideoArt" ) return MXML_GetVideoArt; 124 124 if (sURI == "GetInternetSearch" ) return MXML_GetInternetSearch; 125 125 if (sURI == "GetInternetSources" ) return MXML_GetInternetSources; 126 if (sURI == "GetInternetContent" ) return MXML_GetInternetContent; 126 127 127 128 return MXML_Unknown; 128 129 } … … 229 230 case MXML_GetInternetSources : 230 231 GetInternetSources( pRequest ); 231 232 return true; 233 case MXML_GetInternetContent : 234 GetInternetContent( pRequest ); 235 return true; 232 236 233 237 case MXML_GetConnectionInfo : 234 238 GetConnectionInfo( pRequest ); … … 1662 1666 pRequest->FormatActionResponse( list ); 1663 1667 } 1664 1668 1669 void MythXML::GetInternetContent( HTTPRequest *pRequest ) 1670 { 1671 pRequest->m_eResponseType = ResponseTypeHTML; 1672 1673 QString grabber = pRequest->m_mapParams[ "Grabber" ]; 1674 1675 if (grabber.isEmpty()) 1676 return; 1677 1678 QString contentDir = QString("%1internetcontent/").arg(GetShareDir()); 1679 QString htmlFile(contentDir + grabber); 1680 1681 // Try to prevent directory traversal 1682 QFileInfo fileInfo(htmlFile); 1683 if (fileInfo.canonicalFilePath().startsWith(contentDir) && 1684 QFile::exists( htmlFile )) 1685 { 1686 pRequest->m_eResponseType = ResponseTypeFile; 1687 pRequest->m_nResponseStatus = 200; 1688 pRequest->m_sFileName = htmlFile; 1689 } 1690 else 1691 { 1692 pRequest->FormatRawResponse( QString("<HTML>File %1 does " 1693 "not exist!</HTML>").arg(htmlFile) ); 1694 } 1695 } 1696 1665 1697 ///////////////////////////////////////////////////////////////////////////// 1666 1698 // 1667 1699 ///////////////////////////////////////////////////////////////////////////// -
mythtv/programs/mythbackend/mythxml.h
54 54 MXML_GetVideoArt = 17, 55 55 MXML_GetInternetSearch = 18, 56 56 MXML_GetInternetSources = 19, 57 MXML_GetInternetContent = 20, 57 58 58 MXML_GetFile = 2 0,59 MXML_GetFileList = 2 1,60 MXML_GetFileLinks = 2 2,59 MXML_GetFile = 21, 60 MXML_GetFileList = 22, 61 MXML_GetFileLinks = 23, 61 62 62 63 } MythXMLMethod; 63 64 … … 127 128 128 129 void GetInternetSearch( HTTPRequest *pRequest ); 129 130 void GetInternetSources( HTTPRequest *pRequest ); 131 void GetInternetContent( HTTPRequest *pRequest ); 130 132 131 133 void GetDeviceDesc ( HTTPRequest *pRequest ); 132 134 void GetFile ( HTTPRequest *pRequest, QString sFileName );