stderrlog: Fix behavior on pty close.

This fix was submitted upstream in:
https://github.com/cardoe/stderrlog-rs/pull/54

BUG=b:261436743
TEST=emerge-${BOARD} third-party-crates-src crosh

Change-Id: I3098f69ae9cb6dfb140db58ad821fc2f5f0466af
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rust_crates/+/4087573
Auto-Submit: Allen Webb <allenwebb@google.com>
Commit-Queue: George Burgess <gbiv@chromium.org>
Commit-Queue: Allen Webb <allenwebb@google.com>
Reviewed-by: George Burgess <gbiv@chromium.org>
Tested-by: Allen Webb <allenwebb@google.com>
(cherry picked from commit 243e33ca935fcffba6e99900cfdf3ca8448ee115)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rust_crates/+/4104939
diff --git a/patches/stderrlog-0.5.3/0001-Do-not-panic-in-the-log-statement-when-the-tty-close.patch b/patches/stderrlog-0.5.3/0001-Do-not-panic-in-the-log-statement-when-the-tty-close.patch
new file mode 100644
index 0000000..b753ecc
--- /dev/null
+++ b/patches/stderrlog-0.5.3/0001-Do-not-panic-in-the-log-statement-when-the-tty-close.patch
@@ -0,0 +1,40 @@
+From c344db7cfe83adf5e4ac40e1711df4da435ebc00 Mon Sep 17 00:00:00 2001
+From: Allen Webb <allenwebb@google.com>
+Date: Thu, 8 Dec 2022 08:53:01 -0600
+Subject: [PATCH] Do not panic in the log statement when the tty closes.
+
+Fixes: https://github.com/cardoe/stderrlog-rs/issues/53
+---
+ src/lib.rs | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/lib.rs b/src/lib.rs
+index 4a4facf..a870398 100644
+--- a/src/lib.rs
++++ b/src/lib.rs
+@@ -327,10 +327,11 @@ impl Log for StdErrLog {
+             Level::Trace => Color::Blue,
+         };
+         {
++            // A failure here indicates the stream closed. Do not panic.
+             writer
+                 .get_mut()
+                 .set_color(ColorSpec::new().set_fg(Some(color)))
+-                .expect("failed to set color");
++                .ok();
+         }
+ 
+         if self.show_module_names {
+@@ -361,7 +362,8 @@ impl Log for StdErrLog {
+         }
+         let _ = writeln!(writer, "{}", record.args());
+         {
+-            writer.get_mut().reset().expect("failed to reset the color");
++            // A failure here indicates the stream closed. Do not panic.
++            writer.get_mut().reset().ok();
+         }
+     }
+ 
+-- 
+2.39.0.rc0.267.gcb52ba06e7-goog
+
diff --git a/vendor/stderrlog-0.5.3/.cargo-checksum.json b/vendor/stderrlog-0.5.3/.cargo-checksum.json
index c90e925..368b34b 100644
--- a/vendor/stderrlog-0.5.3/.cargo-checksum.json
+++ b/vendor/stderrlog-0.5.3/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"c1276de690e101714f604d985f37f3c9f05247c530b5e9c581da59c87a6b8766","Cargo.lock":"5e84f8c99056c24b7d6fd2659294e64ed15129415c35b781975685c50e52aaf9","Cargo.toml":"75fd37fc8643c49d96e23444eddd4100db50924d8a0ed8614275e88cab4a85b9","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"eaa197976ebe1ea21aa466227d9278b162df5c6a15915035ff718f0b9d1df3f2","README.md":"92eb628c90ee90bed0527ce6caadc008b2c91474e570928ddbf005276aa54c18","SECURITY.md":"5f09310523256393340d7b4f2099431f311e2e7259734473f91c8c1a135769a9","appveyor.yml":"832df653c1197a893b023c1ab5fe2f0bcd230db403ad9d5fe0b4446113252de9","benches/common/mod.rs":"dc4a993d96528fd554ea8693b0856b3441b1cf5cc3e1220888521ebbc75c1461","benches/junk_modules.rs":"aea434d648639acb5ef0bcc09e84eb69cbfec0fa46afe4dc489042c7db622085","benches/no_color.rs":"1c2f7622f98ce211c0d532001a89fa6807a35eee4c311ec3bf7668759b44cd3f","benches/quiet.rs":"8abbcc2de75a74911455f1b32b9021bac4853c051f84b95703029b2337aab779","benches/real_calls.rs":"a3cd52655eac3a847341b85a998c5121febb5f68c939a260a6f56de3d5f18c1e","benches/skip_module.rs":"290019bb4a30937f59d0136e57928502b761bbe18ed859dba3d34d7dc68cca68","benches/util/mod.rs":"12db7f95e35587ad417ab5a62ff4a1bed1693efd9bf62ba449092323206b90b0","examples/clap.rs":"5db16b6016db1480249da1b4708f89a5d0257925ccf70f7306572692e5d4286d","examples/docopt.rs":"58dde85f4eabec959a323ddc0c197ea30cb2f98f8c2bb329fe151a0093e14929","examples/structopt.rs":"d3c9a52f3e5532ab1312c45908aa2fb1dcd0ed9a210a470c651d34cf4298e385","examples/timestamp.rs":"9a35299a9720a28d4786c7626bcddaed1634d8eb91780ea9e24533724b65e4e2","rustfmt.toml":"4f32a6be6865ad15332f458a4eb33fff4e132ddbeec9bd0285ff059d5c097d55","src/lib.rs":"9b7d884871830fe3a9cbad80431d3c0c4876f69639d30fbdb56c523b3e8d5bd9","tests/debug_level.rs":"636c7a4c75f3ed0ff2982eb1f203f7f817b1b97eff68ad7a45d80cd54991d41a","tests/debug_level_log.rs":"ab9eb9e706100ff187a0c6eb470a2aaa5390675ff3cc40c51c5540a5be2c40b7","tests/error_level.rs":"3c9c3c46bfa2ed57a0dda37f731551305ba17156b3dca9913a7e23303f564a7b","tests/info_level.rs":"bd0d7ec167448c4b63d8c5a346776fb50f22d2be47a5b811b6b70aefe9d85cfd","tests/module_inclusion.rs":"da32ac3f7f5f2b0d7424c781f53e1b4dd7bcf2236b1b34c16025ccc3c9e1e3d5","tests/no_levels_output.rs":"eea87118eb540378927e1534759b8c429265e3a7781514360f2a37721f1d25c9","tests/quiet_trace_level.rs":"d1f2aec9e629c860d4b975a89cd16a2f3972c709366b9072e456906506e2b7f2","tests/trace_level.rs":"12b69965f5d7ba98fa4051a617b06f030aa3daa0af110e1aa9b28f8197abc00e","tests/utils/mod.rs":"3eda039f8838ae4ef23b98d2afe505eff8042dfd7df94d4ae40e6118bfde32ff","tests/warn_level.rs":"dd627d32765bde8a6a495198b79423b60a32c1bbcc066841462405641f3a4977"},"package":"af95cb8a5f79db5b2af2a46f44da7594b5adbcbb65cbf87b8da0959bfdd82460"}
\ No newline at end of file
+{"files": {"CHANGELOG.md": "c1276de690e101714f604d985f37f3c9f05247c530b5e9c581da59c87a6b8766", "Cargo.lock": "5e84f8c99056c24b7d6fd2659294e64ed15129415c35b781975685c50e52aaf9", "Cargo.toml": "75fd37fc8643c49d96e23444eddd4100db50924d8a0ed8614275e88cab4a85b9", "LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", "LICENSE-MIT": "eaa197976ebe1ea21aa466227d9278b162df5c6a15915035ff718f0b9d1df3f2", "README.md": "92eb628c90ee90bed0527ce6caadc008b2c91474e570928ddbf005276aa54c18", "SECURITY.md": "5f09310523256393340d7b4f2099431f311e2e7259734473f91c8c1a135769a9", "appveyor.yml": "832df653c1197a893b023c1ab5fe2f0bcd230db403ad9d5fe0b4446113252de9", "benches/common/mod.rs": "dc4a993d96528fd554ea8693b0856b3441b1cf5cc3e1220888521ebbc75c1461", "benches/junk_modules.rs": "aea434d648639acb5ef0bcc09e84eb69cbfec0fa46afe4dc489042c7db622085", "benches/no_color.rs": "1c2f7622f98ce211c0d532001a89fa6807a35eee4c311ec3bf7668759b44cd3f", "benches/quiet.rs": "8abbcc2de75a74911455f1b32b9021bac4853c051f84b95703029b2337aab779", "benches/real_calls.rs": "a3cd52655eac3a847341b85a998c5121febb5f68c939a260a6f56de3d5f18c1e", "benches/skip_module.rs": "290019bb4a30937f59d0136e57928502b761bbe18ed859dba3d34d7dc68cca68", "benches/util/mod.rs": "12db7f95e35587ad417ab5a62ff4a1bed1693efd9bf62ba449092323206b90b0", "examples/clap.rs": "5db16b6016db1480249da1b4708f89a5d0257925ccf70f7306572692e5d4286d", "examples/docopt.rs": "58dde85f4eabec959a323ddc0c197ea30cb2f98f8c2bb329fe151a0093e14929", "examples/structopt.rs": "d3c9a52f3e5532ab1312c45908aa2fb1dcd0ed9a210a470c651d34cf4298e385", "examples/timestamp.rs": "9a35299a9720a28d4786c7626bcddaed1634d8eb91780ea9e24533724b65e4e2", "rustfmt.toml": "4f32a6be6865ad15332f458a4eb33fff4e132ddbeec9bd0285ff059d5c097d55", "src/lib.rs": "e8a858e08b29cfb0dbfa66c19efa7bd257a7d3646090f49e39a2e8c53a8db5e0", "tests/debug_level.rs": "636c7a4c75f3ed0ff2982eb1f203f7f817b1b97eff68ad7a45d80cd54991d41a", "tests/debug_level_log.rs": "ab9eb9e706100ff187a0c6eb470a2aaa5390675ff3cc40c51c5540a5be2c40b7", "tests/error_level.rs": "3c9c3c46bfa2ed57a0dda37f731551305ba17156b3dca9913a7e23303f564a7b", "tests/info_level.rs": "bd0d7ec167448c4b63d8c5a346776fb50f22d2be47a5b811b6b70aefe9d85cfd", "tests/module_inclusion.rs": "da32ac3f7f5f2b0d7424c781f53e1b4dd7bcf2236b1b34c16025ccc3c9e1e3d5", "tests/no_levels_output.rs": "eea87118eb540378927e1534759b8c429265e3a7781514360f2a37721f1d25c9", "tests/quiet_trace_level.rs": "d1f2aec9e629c860d4b975a89cd16a2f3972c709366b9072e456906506e2b7f2", "tests/trace_level.rs": "12b69965f5d7ba98fa4051a617b06f030aa3daa0af110e1aa9b28f8197abc00e", "tests/utils/mod.rs": "3eda039f8838ae4ef23b98d2afe505eff8042dfd7df94d4ae40e6118bfde32ff", "tests/warn_level.rs": "dd627d32765bde8a6a495198b79423b60a32c1bbcc066841462405641f3a4977"}, "package": "af95cb8a5f79db5b2af2a46f44da7594b5adbcbb65cbf87b8da0959bfdd82460"}
\ No newline at end of file
diff --git a/vendor/stderrlog-0.5.3/src/lib.rs b/vendor/stderrlog-0.5.3/src/lib.rs
index 4a4facf..a870398 100644
--- a/vendor/stderrlog-0.5.3/src/lib.rs
+++ b/vendor/stderrlog-0.5.3/src/lib.rs
@@ -327,10 +327,11 @@
             Level::Trace => Color::Blue,
         };
         {
+            // A failure here indicates the stream closed. Do not panic.
             writer
                 .get_mut()
                 .set_color(ColorSpec::new().set_fg(Some(color)))
-                .expect("failed to set color");
+                .ok();
         }
 
         if self.show_module_names {
@@ -361,7 +362,8 @@
         }
         let _ = writeln!(writer, "{}", record.args());
         {
-            writer.get_mut().reset().expect("failed to reset the color");
+            // A failure here indicates the stream closed. Do not panic.
+            writer.get_mut().reset().ok();
         }
     }