Page MenuHomePhabricator

large_lines.diff

Authored By
epriestley
Oct 8 2015, 5:47 PM
Size
752 B
Referenced Files
None
Subscribers
None

large_lines.diff

diff --git a/src/utils/utils.php b/src/utils/utils.php
index 5e5f305..4854681 100644
--- a/src/utils/utils.php
+++ b/src/utils/utils.php
@@ -770,6 +770,19 @@ function phutil_split_lines($corpus, $retain_endings = true) {
return array('');
}
+ $count = substr_count($corpus, "\n");
+ $limit = 1024 * 1024;
+ if ($count > $limit) {
+ $ex = new Exception(
+ pht(
+ 'Huge input! Found %s lines, hoped for %s. Probably about to '.
+ 'OOM. Exciting! Corpus begins: %s...',
+ new PhutilNumber($count),
+ new Phutilnumber($limit),
+ tsprintf("%s", substr($corpus, 0, 256))));
+ phlog($ex);
+ }
+
// Split on "\r\n" or "\n".
if ($retain_endings) {
$lines = preg_split('/(?<=\n)/', $corpus);

File Metadata

Mime Type
text/plain; charset=utf-8
Storage Engine
amazon-s3
Storage Format
Raw Data
Storage Handle
phabricator/d5/a3/6c6ahtkhf37nkhmi
Default Alt Text
large_lines.diff (752 B)

Event Timeline