{"id":65,"date":"2016-08-07T12:05:28","date_gmt":"2016-08-07T12:05:28","guid":{"rendered":"https:\/\/blogs.scummvm.org\/tkachov\/?p=65"},"modified":"2022-05-24T12:05:48","modified_gmt":"2022-05-24T12:05:48","slug":"gsoc-cloud-security-wage-updates","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/tkachov\/2016\/08\/07\/gsoc-cloud-security-wage-updates\/","title":{"rendered":"GSoC: Cloud security, WAGE updates"},"content":{"rendered":"<p>This week I\u2019ve worked on\u00a0some security-related updates for LocalWebserver. It\u00a0now has a\u00a0\u00abminimal mode\u00bb\u00a0\u2014 no\u00a0Files Manager features are available, only redirect_uri. It\u2019s used automatically in\u00a0Storage Connection Wizard, and server goes offline the moment it\u00a0gets the code.<\/p>\n<p>Paths are now dealt with more strictly: \u00ab..\/\u00bb is\u00a0forbidden to\u00a0use, ScummVM has some \u00abblacklisted\u00bb directories and user can define where the \u00ab\/root\/\u00bb is. Files outside that folder are not available through Files Manager. Plus, if\u00a0no\u00a0rootpath specified, \u00ab\/root\/\u00bb is\u00a0not even listed\u00a0\u2014 only \u00ab\/saves\/\u00bb is\u00a0available then. GUI for changing rootpath is\u00a0added to\u00a0the same Cloud tab.<\/p>\n<p>One other thing\u00a0I did was rebasing. Travis checks PRs by\u00a0merging with master and then building. Titanic, which wasn\u2019t there when I\u00a0started, was using OutSaveFile as\u00a0if\u00a0it\u2019s typedefed WriteStream. But in\u00a0my\u00a0Cloud PR\u00a0OutSaveFile is\u00a0a\u00a0real class (which starts saves sync when finalized). So, I\u00a0had to\u00a0rebase and add a\u00a0simple fix in\u00a0Titanic, and now Travis checks are passed again.<\/p>\n<p>In\u00a0order to\u00a0update WAGE saves, I\u00a0had to\u00a0add pos() into WriteStream class. Managed to\u00a0break a\u00a0few builds that way.<\/p>\n<p>Also, fixed a\u00a0few crashes in\u00a0WAGE games. One was because code tried to\u00a0copy pixels outside of\u00a0the Surface, and\u00a0I added checks, so\u00a0copied rectangle is\u00a0clipped to\u00a0always be\u00a0within surface area. The other was because operator[] was used on\u00a0an\u00a0empty String, and now that code uses it\u00a0only when String it\u00a0not empty.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week I\u2019ve worked on\u00a0some security-related updates for LocalWebserver. It\u00a0now has a\u00a0\u00abminimal mode\u00bb\u00a0\u2014 no\u00a0Files Manager features are available, only redirect_uri. It\u2019s used automatically in\u00a0Storage Connection Wizard, and server goes offline the moment it\u00a0gets the code. Paths are now dealt with more strictly: \u00ab..\/\u00bb is\u00a0forbidden to\u00a0use, ScummVM has some \u00abblacklisted\u00bb directories and user can define where [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-65","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/posts\/65","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/comments?post=65"}],"version-history":[{"count":1,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/posts\/65\/revisions"}],"predecessor-version":[{"id":66,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/posts\/65\/revisions\/66"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/media?parent=65"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/categories?post=65"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/tags?post=65"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}