mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-11 05:52:36 +02:00
lbutils: remove xpledge/xunveil, just call them direct
Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
Reference in New Issue
Block a user