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