Fix overescaping in Paste
Summary: Two issues: - When we read the content out of cache, it has lost its "safe html" flag, since the cache is raw-string oriented. Restore it. - explode() isn't safe-html-safe. Use phutil_split_lines() instead, which is. Test Plan: Looked at /paste/ Reviewers: codeblock, chad Reviewed By: codeblock CC: aran Differential Revision: https://secure.phabricator.com/D4980
This commit is contained in:
@@ -44,7 +44,7 @@ abstract class PhabricatorPasteController extends PhabricatorController {
|
|||||||
PhabricatorPaste $paste,
|
PhabricatorPaste $paste,
|
||||||
$max_lines = null) {
|
$max_lines = null) {
|
||||||
|
|
||||||
$lines = explode("\n", rtrim($paste->getContent()));
|
$lines = phutil_split_lines($paste->getContent());
|
||||||
|
|
||||||
return id(new PhabricatorSourceCodeView())
|
return id(new PhabricatorSourceCodeView())
|
||||||
->setLimit($max_lines)
|
->setLimit($max_lines)
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ final class PhabricatorPasteQuery
|
|||||||
foreach ($pastes as $paste) {
|
foreach ($pastes as $paste) {
|
||||||
$key = $this->getContentCacheKey($paste);
|
$key = $this->getContentCacheKey($paste);
|
||||||
if (isset($caches[$key])) {
|
if (isset($caches[$key])) {
|
||||||
$paste->attachContent($caches[$key]);
|
$paste->attachContent(phutil_safe_html($caches[$key]));
|
||||||
} else {
|
} else {
|
||||||
$need_raw[] = $paste;
|
$need_raw[] = $paste;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user