Bug 797827 - 4.0.1 gnucash-cli seg faults on macOS Catalina

The string references in Gnucash::run_report's run_report_args were
getting corrupted so either a NULL or invalid filename was passed on
to the backend. Forcing a copy into run_report_args protects the
values and allows the report to run.
This commit is contained in:
John Ralls 2020-07-11 17:03:54 -07:00
parent 6ec36dd02b
commit 86f7e33291

View File

@ -133,11 +133,15 @@ report_session_percentage (const char *message, double percent)
return; return;
} }
/* Don't try to use std::string& for the members of the following struct, it
* results in the values getting corrupted as it passes through initializing
* Scheme when compiled with Clang.
*/
struct run_report_args { struct run_report_args {
const std::string& file_to_load; const std::string file_to_load;
const std::string& run_report; const std::string run_report;
const std::string& export_type; const std::string export_type;
const std::string& output_file; const std::string output_file;
}; };
static void static void