/** check chroot for a file string */
static void
-check_chroot_string(const char* desc, char** str,
+check_chroot_string(const char* desc, char** ss,
const char* chrootdir, struct config_file* cfg)
{
- char* old;
- char* s = *str;
- if(s && s[0]) {
- if(!is_file(fname_after_chroot(s, cfg, 1))) {
+ char* str = *ss;
+ if(str && str[0]) {
+ if(!is_file(fname_after_chroot(str, cfg, 1))) {
fatal_exit("%s: \"%s\" does not exist in chrootdir %s",
- desc, s, chrootdir);
+ desc, str, chrootdir);
}
- old = s;
/* put in a new full path for continued checking */
- *str = strdup(fname_after_chroot(s, cfg, 1));
- free(old);
+ *ss = strdup(fname_after_chroot(str, cfg, 1));
+ free(str);
}
}
ldns_rdf_deep_free(origin);
ldns_rdf_deep_free(prev);
fclose(in);
- return ok?ta:NULL;
+ if(!ok) return NULL;
+ /* empty file is OK when multiple anchors are allowed */
+ if(!onlyone && !ta) return (struct trust_anchor*)1;
+ return ta;
}
/** skip file to end of line */