summaryrefslogtreecommitdiff
path: root/util/nvmutil/nvmutil.c
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-05-31 06:30:31 +0100
committerLeah Rowe <leah@libreboot.org>2023-05-31 06:32:43 +0100
commitc759a7a0952556b078caf9c756f5db543efaabda (patch)
tree0133e1ab7a5f3a20b66c44286b5a653f1dd5bc4b /util/nvmutil/nvmutil.c
parentf37bd75925d2e21ab46a67763e2297384e9b73f3 (diff)
util/nvmutil: Simplify use of pledge (on OpenBSD)
Define xpledge which calls pledge and handles errors. Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'util/nvmutil/nvmutil.c')
-rw-r--r--util/nvmutil/nvmutil.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c
index dd0da230..9702ff0b 100644
--- a/util/nvmutil/nvmutil.c
+++ b/util/nvmutil/nvmutil.c
@@ -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
+}