diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2017-06-24 20:46:46 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2017-06-26 11:53:57 +0300 |
commit | 360ee295a8c5ac1f693e38160302c1ea93bb9964 (patch) | |
tree | 1d545f9313a501f917bc2ed51f462b2eee2f362a /bbot | |
parent | afe67a4a67647e7f72af63bd9c978445113d0b4f (diff) |
Only examine first 512 log line bytes for warnings detection
Fixes
Diffstat (limited to 'bbot')
-rw-r--r-- | bbot/worker.cxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/bbot/worker.cxx b/bbot/worker.cxx index a0e2ad7..81d9a50 100644 --- a/bbot/worker.cxx +++ b/bbot/worker.cxx @@ -116,7 +116,13 @@ run_bpkg (tracer& t, { for (const auto& re: warn_detect) { - if (regex_search (l, re)) + // Only examine the first 512 bytes. Long lines (e.g., linker + // command lines) could trigger implementation-specific limitations + // (like stack overflow). Plus, it is a performance concern. + // + if (regex_search (l.begin (), + l.size () < 512 ? l.end () : l.begin () + 512, + re)) { r = result_status::warning; break; |