lbutils: remove xpledge/xunveil, just call them direct

Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Leah Rowe
2026-04-21 05:54:50 +01:00
parent 7ff5d925bf
commit 0205c0e6b0
5 changed files with 33 additions and 43 deletions
-2
View File
@@ -357,8 +357,6 @@ void write_mac_part(size_t partnum);
size_t page_remain(const void *p); size_t page_remain(const void *p);
long pagesize(void); long pagesize(void);
int xunveilx(const char *path, const char *permissions);
int xpledgex(const char *promises, const char *execpromises);
char *smalloc(char **buf, size_t size); char *smalloc(char **buf, size_t size);
void *vmalloc(void **buf, size_t size); void *vmalloc(void **buf, size_t size);
size_t slen(const char *scmp, size_t maxlen, size_t slen(const char *scmp, size_t maxlen,
-29
View File
@@ -620,32 +620,3 @@ lbsetprogname(char *argv0)
return progname; return progname;
} }
/* https://man.openbsd.org/pledge.2
https://man.openbsd.org/unveil.2 */
int
xpledgex(const char *promises, const char *execpromises)
{
int saved_errno = errno;
(void) promises, (void) execpromises, (void) saved_errno;
errno = 0;
#ifdef __OpenBSD__
if (pledge(promises, execpromises) == -1)
exitf("pledge");
#endif
reset_caller_errno(0);
return 0;
}
int
xunveilx(const char *path, const char *permissions)
{
int saved_errno = errno;
(void) path, (void) permissions, (void) saved_errno;
errno = 0;
#ifdef __OpenBSD__
if (pledge(promises, execpromises) == -1)
exitf("pledge");
#endif
reset_caller_errno(0);
return 0;
}
+4 -1
View File
@@ -24,8 +24,11 @@ main(int argc, char **argv)
(void) errhook(exit_cleanup); (void) errhook(exit_cleanup);
(void) lbsetprogname(argv[0]); (void) lbsetprogname(argv[0]);
#ifdef __OpenBSD__
/* https://man.openbsd.org/pledge.2 */ /* https://man.openbsd.org/pledge.2 */
xpledgex("stdio", NULL); if (pledge("stdio", NULL) == -1)
exitf("pledge");
#endif
buf = rmalloc(size); buf = rmalloc(size);
if (!vcmp(buf, buf + (size >> 1), size >> 1)) if (!vcmp(buf, buf + (size >> 1), size >> 1))
+8 -2
View File
@@ -59,8 +59,11 @@ main(int argc, char *argv[])
(void) errhook(exit_cleanup); (void) errhook(exit_cleanup);
(void) lbsetprogname(argv[0]); (void) lbsetprogname(argv[0]);
#ifdef __OpenBSD__
/* https://man.openbsd.org/pledge.2 */ /* https://man.openbsd.org/pledge.2 */
xpledgex("stdio flock rpath wpath cpath", NULL); if (pledge("stdio flock rpath wpath cpath", NULL) == -1)
exitf("pledge");
#endif
while ((c = while ((c =
getopt(argc, argv, "qdp:")) != -1) { getopt(argc, argv, "qdp:")) != -1) {
@@ -117,7 +120,10 @@ main(int argc, char *argv[])
tmpdir, template) < 0) tmpdir, template) < 0)
exitf("%s", s); exitf("%s", s);
xpledgex("stdio", NULL); #ifdef __OpenBSD__
if (pledge("stdio", NULL) == -1)
exitf("pledge");
#endif
if (s == NULL) if (s == NULL)
exitf("bad string initialisation"); exitf("bad string initialisation");
+21 -9
View File
@@ -38,10 +38,14 @@ main(int argc, char *argv[])
(void) errhook(exit_cleanup); (void) errhook(exit_cleanup);
#ifdef __OpenBSD
/* https://man.openbsd.org/pledge.2 */ /* https://man.openbsd.org/pledge.2 */
/* https://man.openbsd.org/unveil.2 */ /* https://man.openbsd.org/unveil.2 */
xpledgex("stdio flock rpath wpath cpath unveil", NULL); if (pledge("stdio flock rpath wpath cpath unveil", NULL) == -1)
xunveilx("/dev/urandom", "r"); exitf("pledge");
if (unveil("/dev/urandom", "r") == -1)
exitf("unveil");
#endif
#ifndef S_ISREG #ifndef S_ISREG
exitf( exitf(
@@ -62,14 +66,22 @@ main(int argc, char *argv[])
cmd = &x->cmd[x->i]; cmd = &x->cmd[x->i];
f = &x->f; f = &x->f;
if ((cmd->flags & O_ACCMODE) == O_RDONLY) #ifdef __OpenBSD__
xunveilx(f->fname, "r"); if ((cmd->flags & O_ACCMODE) == O_RDONLY) {
else if (unveil(f->fname, "r") == -1)
xunveilx(f->fname, "rwc"); exitf("unveil");
} else {
if (unveil(f->fname, "rwc") == -1)
exitf("unveil");
}
xunveilx(f->tname, "rwc"); if (unveil(f->tname, "rwc") == -1)
xunveilx(NULL, NULL); exitf("unveil");
xpledgex("stdio flock rpath wpath cpath", NULL); if (unveil(NULL, NULL) == -1)
exitf("unveil");
if (pledge("stdio flock rpath wpath cpath", NULL) == -1)
exitf("pledge");
#endif
if (cmd->run == NULL) if (cmd->run == NULL)
exitf("Command not set"); exitf("Command not set");