mirror of
https://github.com/alacritty/alacritty.git
synced 2024-11-18 13:55:23 -05:00
Set upper limit for scrollback history size
Since the scrollback history allocates all lines in memory, it is possible to specify a scrollback history which is big enough to freeze the computer due to OOM. To resolve this issue, an upper limit of `100_000` has been set for the scrollback history. Even though this might still cause some systems to freeze, this should provide a good balance for most users.
This commit is contained in:
parent
63a40df520
commit
00bd098765
1 changed files with 14 additions and 1 deletions
|
@ -30,6 +30,8 @@ use ansi::CursorStyle;
|
|||
|
||||
use util::fmt::Yellow;
|
||||
|
||||
const MAX_SCROLLBACK_LINES: u32 = 100_000;
|
||||
|
||||
/// Function that returns true for serde default
|
||||
fn true_bool() -> bool {
|
||||
true
|
||||
|
@ -511,7 +513,18 @@ fn deserialize_scrolling_history<'a, D>(deserializer: D) -> ::std::result::Resul
|
|||
where D: de::Deserializer<'a>
|
||||
{
|
||||
match u32::deserialize(deserializer) {
|
||||
Ok(lines) => Ok(lines),
|
||||
Ok(lines) => {
|
||||
if lines > MAX_SCROLLBACK_LINES {
|
||||
eprintln!(
|
||||
"problem with config: scrollback size is {}, but expected a maximum of {}; \
|
||||
Using {1} instead",
|
||||
lines, MAX_SCROLLBACK_LINES,
|
||||
);
|
||||
Ok(MAX_SCROLLBACK_LINES)
|
||||
} else {
|
||||
Ok(lines)
|
||||
}
|
||||
},
|
||||
Err(err) => {
|
||||
eprintln!("problem with config: {}; Using default value", err);
|
||||
Ok(default_scrolling_history())
|
||||
|
|
Loading…
Reference in a new issue