util/nvmutil: Simplify use of pledge (on OpenBSD)

Define xpledge which calls pledge and handles errors.

Signed-off-by: Leah Rowe <leah@libreboot.org>
fsdg20230625
Leah Rowe 2023-05-31 06:30:31 +01:00
parent f37bd75925
commit c759a7a095
1 changed files with 13 additions and 10 deletions

View File

@ -56,6 +56,7 @@ uint16_t word(int pos16, int partnum);
void setWord(int pos16, int partnum, uint16_t val16);
void byteswap(int n, int partnum);
void writeGbeFile(int *fd, const char *filename, size_t nw);
void xpledge(const char *promises, const char *execpromises);
#define FILENAME argv[1]
#define COMMAND argv[2]
@ -78,16 +79,11 @@ uint8_t big_endian;
int
main(int argc, char *argv[])
{
xpledge("stdio rpath wpath", NULL);
size_t nr = 128;
int fd, flags = O_RDWR;
void (*cmd)(void) = NULL;
const char *strMac = NULL, *strRMac = "??:??:??:??:??:??";
#ifdef __OpenBSD__
if (pledge("stdio rpath wpath", NULL) == -1)
err(errno, "pledge");
#endif
buf = (uint8_t *) &buf16;
gbe[1] = (gbe[0] = (size_t) buf) + SIZE_4KB;
@ -96,10 +92,7 @@ main(int argc, char *argv[])
if (argc == 3) {
if (strcmp(COMMAND, "dump") == 0) {
#ifdef __OpenBSD__
if (pledge("stdio rpath", NULL) == -1)
err(errno, "pledge");
#endif
xpledge("stdio rpath", NULL);
flags = O_RDONLY;
cmd = &cmd_dump;
} else if (strcmp(COMMAND, "setmac") == 0) {
@ -374,3 +367,13 @@ next_part:
if (close((*fd)))
err(errno, "%s", filename);
}
void
xpledge(const char *promises, const char *execpromises)
{
(void)promises; (void)execpromises;
#ifdef __OpenBSD__
if (pledge(promises, execpromises) == -1)
err(errno, NULL);
#endif
}