util/nvmutil: simplified error handling in main
This change also reduces code indentation. Signed-off-by: Leah Rowe <leah@libreboot.org>fsdg20230625
parent
78fc89352b
commit
8f1e6d792f
|
@ -58,6 +58,7 @@ void byteswap(int n, int partnum);
|
||||||
void writeGbeFile(int *fd, const char *filename, size_t nw);
|
void writeGbeFile(int *fd, const char *filename, size_t nw);
|
||||||
void xpledge(const char *promises, const char *execpromises);
|
void xpledge(const char *promises, const char *execpromises);
|
||||||
void xunveil(const char *path, const char *permissions);
|
void xunveil(const char *path, const char *permissions);
|
||||||
|
void err_if(int condition);
|
||||||
|
|
||||||
#define FILENAME argv[1]
|
#define FILENAME argv[1]
|
||||||
#define COMMAND argv[2]
|
#define COMMAND argv[2]
|
||||||
|
@ -118,10 +119,8 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((strMac == NULL) && (cmd == NULL))
|
err_if(errno = ((strMac == NULL) && (cmd == NULL)) ? EINVAL : errno);
|
||||||
errno = EINVAL;
|
|
||||||
|
|
||||||
if (errno == 0) {
|
|
||||||
skipread[part ^ 1] = (cmd == &cmd_copy) |
|
skipread[part ^ 1] = (cmd == &cmd_copy) |
|
||||||
(cmd == &cmd_setchecksum) | (cmd == &cmd_brick);
|
(cmd == &cmd_setchecksum) | (cmd == &cmd_brick);
|
||||||
readGbeFile(&fd, FILENAME, flags, nr);
|
readGbeFile(&fd, FILENAME, flags, nr);
|
||||||
|
@ -133,16 +132,14 @@ main(int argc, char *argv[])
|
||||||
xpledge("stdio wpath unveil", NULL);
|
xpledge("stdio wpath unveil", NULL);
|
||||||
xunveil(FILENAME, "w");
|
xunveil(FILENAME, "w");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strMac != NULL)
|
if (strMac != NULL)
|
||||||
cmd_setmac(strMac); /* nvm gbe.bin setmac */
|
cmd_setmac(strMac); /* nvm gbe.bin setmac */
|
||||||
else if (cmd != NULL)
|
else if (cmd != NULL)
|
||||||
(*cmd)(); /* all other commands except setmac */
|
(*cmd)(); /* all other commands except setmac */
|
||||||
writeGbeFile(&fd, FILENAME, nr);
|
writeGbeFile(&fd, FILENAME, nr);
|
||||||
} else
|
|
||||||
xpledge("stdio", NULL);
|
|
||||||
|
|
||||||
if ((errno != 0) && (cmd != &cmd_dump))
|
err_if((errno != 0) && (cmd != &cmd_dump));
|
||||||
err(errno, NULL);
|
|
||||||
return errno;
|
return errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -396,3 +393,13 @@ xunveil(const char *path, const char *permissions)
|
||||||
err(errno, NULL);
|
err(errno, NULL);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
err_if(int condition)
|
||||||
|
{
|
||||||
|
if (!condition)
|
||||||
|
return;
|
||||||
|
if (!errno)
|
||||||
|
errno = ECANCELED;
|
||||||
|
err(errno, NULL);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue