diff options
| -rw-r--r-- | util/nvmutil/nvmutil.c | 10 | 
1 files changed, 5 insertions, 5 deletions
| diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c index 0d0471af..290808d3 100644 --- a/util/nvmutil/nvmutil.c +++ b/util/nvmutil/nvmutil.c @@ -31,7 +31,6 @@ void setWord(int pos16, int partnum, uint16_t val16);  void xorswap_buf(int partnum);  void writeGbeFile(void); -#define FILENAME argv[1]  #define COMMAND argv[2]  #define MAC_ADDRESS argv[3]  #define PARTNUM argv[3] @@ -43,7 +42,7 @@ size_t nf = 128, gbe[2];  uint8_t nvmPartModified[2] = {0, 0}, skipread[2] = {0, 0};  int endian = 1, flags = O_RDWR, rfd, fd, part, gbeFileModified = 0; -const char *strMac = NULL, *strRMac = "??:??:??:??:??:??"; +const char *strMac = NULL, *strRMac = "??:??:??:??:??:??", *filename = NULL;  typedef struct op {  	char *str; @@ -61,7 +60,7 @@ op_t op[] = {  void (*cmd)(void) = NULL;  #define ERR() errno = errno ? errno : ECANCELED -#define err_if(x) if (x) err(ERR(), NULL) +#define err_if(x) if (x) err(ERR(), "%s", filename)  #define xopen(f,l,p) if (opendir(l) != NULL) err(errno = EISDIR, "%s", l); \  	if ((f = open(l, p)) == -1) err(ERR(), "%s", l); \ @@ -76,13 +75,14 @@ main(int argc, char *argv[])  {  	err_if((errno = argc < 3 ? EINVAL : errno));  	flags = (strcmp(COMMAND, "dump") == 0) ? O_RDONLY : flags; +	filename = argv[1];  #ifdef __OpenBSD__  	err_if(unveil("/dev/urandom", "r") == -1); -	err_if(unveil(FILENAME, flags == O_RDONLY ? "r" : "rw") == -1); +	err_if(unveil(filename, flags == O_RDONLY ? "r" : "rw") == -1);  	err_if(pledge(flags == O_RDONLY ? "stdio rpath" : "stdio rpath wpath",  	    NULL) == -1);  #endif -	openFiles(FILENAME); +	openFiles(filename);  #ifdef __OpenBSD__  	err_if(pledge("stdio", NULL) == -1);  #endif | 
