diff --git a/core/wasm_shims/tooldata/tooldata_probe_main.cc b/core/wasm_shims/tooldata/tooldata_probe_main.cc index d5a61b4..4d65406 100644 --- a/core/wasm_shims/tooldata/tooldata_probe_main.cc +++ b/core/wasm_shims/tooldata/tooldata_probe_main.cc @@ -203,6 +203,19 @@ int main() { if (separator == std::string::npos || missing_db_program_with_arg[separator] != 0) { return 56; } + char missing_db_program_with_args[] = "/tmp/cnc_tooldata_probe_missing_db_program alpha beta"; + if (tooldata_db_init(missing_db_program_with_args, 0) != -1) { + return 83; + } + // LinuxCNC src/emc/tooldata/tooldata_db.cc tokenizes progname_plus_args + // in place with strtok_r() before checking whether argv[0] is executable. + if (missing_db_program_with_args[42] != 0 || + missing_db_program_with_args[48] != 0 || + std::strcmp(missing_db_program_with_args, "/tmp/cnc_tooldata_probe_missing_db_program") != 0 || + std::strcmp(missing_db_program_with_args + 43, "alpha") != 0 || + std::strcmp(missing_db_program_with_args + 49, "beta") != 0) { + return 84; + } std::string missing_db_program_string = make_temp_path("cnc_tooldata_probe_missing_db_program"); std::vector missing_db_program( missing_db_program_string.begin(),