Changeset View
Changeset View
Standalone View
Standalone View
lib/libjail/jail.c
Show First 20 Lines • Show All 1,044 Lines • ▼ Show 20 Lines | kldload_param(const char *name) | ||||
if (strcmp(name, "linux") == 0 || strncmp(name, "linux.", 6) == 0) | if (strcmp(name, "linux") == 0 || strncmp(name, "linux.", 6) == 0) | ||||
kl = kldload("linux"); | kl = kldload("linux"); | ||||
else if (strcmp(name, "sysvmsg") == 0 || strcmp(name, "sysvsem") == 0 || | else if (strcmp(name, "sysvmsg") == 0 || strcmp(name, "sysvsem") == 0 || | ||||
strcmp(name, "sysvshm") == 0) | strcmp(name, "sysvshm") == 0) | ||||
kl = kldload(name); | kl = kldload(name); | ||||
else if (strncmp(name, "allow.mount.", 12) == 0) { | else if (strncmp(name, "allow.mount.", 12) == 0) { | ||||
/* Load the matching filesystem */ | /* Load the matching filesystem */ | ||||
const char *modname; | const char *modname = name + 12; | ||||
if (strcmp("fusefs", name + 12) == 0 || | |||||
strcmp("nofusefs", name + 12) == 0) { | |||||
modname = "fuse"; | |||||
} else { | |||||
modname = name + 12; | |||||
} | |||||
kl = kldload(modname); | kl = kldload(modname); | ||||
if (kl < 0 && errno == ENOENT && | if (kl < 0 && errno == ENOENT && | ||||
strncmp(modname, "no", 2) == 0) | strncmp(modname, "no", 2) == 0) | ||||
kl = kldload(modname + 2); | kl = kldload(modname + 2); | ||||
} else { | } else { | ||||
errno = ENOENT; | errno = ENOENT; | ||||
return (-1); | return (-1); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 54 Lines • Show Last 20 Lines |