util/nvmutil: cleaner directory checking

opendir allocates resources and causes a bunch of other
error conditions which we need to catch.

use of stat is more efficient here.

Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Leah Rowe
2026-03-03 04:11:29 +00:00
parent b8e0513123
commit 1c10eb524f
+12 -10
View File
@@ -138,16 +138,6 @@ set_io_flags(int argc, char *argv[])
flags = O_RDONLY;
}
void
checkdir(const char *path)
{
if (opendir(path) != NULL)
err(set_err(EISDIR), "%s", path);
if (errno == ENOTDIR)
errno = 0;
err_if(errno);
}
void
openFiles(void)
{
@@ -171,6 +161,18 @@ openFiles(void)
}
}
void
checkdir(const char *path)
{
struct stat st;
err_if (stat(path, &st) == -1);
if (S_ISDIR(st.st_mode))
err(set_err(EISDIR), "%s", path);
if (errno == ENOTDIR)
errno = 0;
err_if(errno);
}
void
xopen(int *f, const char *l, int p, struct stat *st)
{