From e7f9f58fa408ac89ed1ce709494d84090b63bff0 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 5 Dec 2022 21:26:00 -0500 Subject: reporter: Eliminate undefined behavior in SaveErrorReport The optionals are unconditionally dereferenced when setting the custom error text, and in a few cases this function is called using the default value of the optionals. This means we'd be dereferencing uninitialized storage. Since they're used unconditionally, we can use value_or to set a default when storage is uninitialized. --- src/core/reporter.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/core/reporter.h') diff --git a/src/core/reporter.h b/src/core/reporter.h index 68755cbde..983a9545a 100644 --- a/src/core/reporter.h +++ b/src/core/reporter.h @@ -61,8 +61,8 @@ public: // Used by error applet void SaveErrorReport(u64 title_id, Result result, - std::optional custom_text_main = {}, - std::optional custom_text_detail = {}) const; + const std::optional& custom_text_main = {}, + const std::optional& custom_text_detail = {}) const; void SaveFSAccessLog(std::string_view log_message) const; -- cgit v1.2.3