status after printing the error.
Problem caused by sudo_warn/sudo_fatal being macros...
/* Open plugin and map in symbol. */
group_handle = sudo_dso_load(path, SUDO_DSO_LAZY|SUDO_DSO_GLOBAL);
if (!group_handle) {
- sudo_warnx(U_("unable to load %s: %s"), path, sudo_dso_strerror());
+ const char *errstr = sudo_dso_strerror();
+ sudo_warnx(U_("unable to load %s: %s"), path,
+ errstr ? errstr : "unknown error");
goto done;
}
group_plugin = sudo_dso_findsym(group_handle, "group_plugin");
symbols_file = argv[2];
handle = sudo_dso_load(plugin_path, SUDO_DSO_LAZY|SUDO_DSO_GLOBAL);
- if (handle == NULL)
- sudo_fatalx_nodebug("unable to load %s: %s", plugin_path, sudo_dso_strerror());
+ if (handle == NULL) {
+ const char *errstr = sudo_dso_strerror();
+ sudo_fatalx_nodebug("unable to load %s: %s", plugin_path,
+ errstr ? errstr : "unknown error");
+ }
fp = fopen(symbols_file, "r");
if (fp == NULL)
*cp = '\0';
sym = sudo_dso_findsym(handle, line);
if (sym == NULL) {
+ const char *errstr = sudo_dso_strerror();
printf("%s: test %d: unable to resolve symbol %s: %s\n",
- getprogname(), ntests, line, sudo_dso_strerror());
+ getprogname(), ntests, line, errstr ? errstr : "unknown error");
errors++;
}
}
/* Load symbols */
handle->ssslib = sudo_dso_load(path, SUDO_DSO_LAZY);
if (handle->ssslib == NULL) {
- sudo_warnx(U_("unable to load %s: %s"), path, sudo_dso_strerror());
+ const char *errstr = sudo_dso_strerror();
+ sudo_warnx(U_("unable to load %s: %s"), path,
+ errstr ? errstr : "unknown error");
sudo_warnx(U_("unable to initialize SSS source. Is SSSD installed on your machine?"));
free(handle);
debug_return_int(EFAULT);
/* Open plugin and map in symbol */
handle = sudo_dso_load(path, SUDO_DSO_LAZY|SUDO_DSO_GLOBAL);
if (!handle) {
+ const char *errstr = sudo_dso_strerror();
sudo_warnx(U_("error in %s, line %d while loading plugin `%s'"),
_PATH_SUDO_CONF, info->lineno, info->symbol_name);
- sudo_warnx(U_("unable to load %s: %s"), path, sudo_dso_strerror());
+ sudo_warnx(U_("unable to load %s: %s"), path,
+ errstr ? errstr : "unknown error");
goto bad;
}
plugin = sudo_dso_findsym(handle, info->symbol_name);