Add safe macros for chdir and mkdir.
Signed-off-by: Garrett Cooper <yanegomi@gmail.com>
diff --git a/lib/safe_macros.c b/lib/safe_macros.c
index 693c848..c98376d 100644
--- a/lib/safe_macros.c
+++ b/lib/safe_macros.c
@@ -25,6 +25,20 @@
}
int
+safe_chdir(const char *file, const int lineno, void (*cleanup_fn)(void),
+ const char *path)
+{
+ int rval;
+
+ rval = chdir(path);
+ if (rval == -1)
+ tst_brkm(TBROK|TERRNO, cleanup_fn, "chdir failed at %s:%d",
+ file, lineno);
+
+ return (rval);
+}
+
+int
safe_close(const char *file, const int lineno, void (*cleanup_fn)(void),
int fildes)
{
@@ -108,6 +122,20 @@
return (rval);
}
+int
+safe_mkdir(const char *file, const int lineno, void (*cleanup_fn)(void),
+ const char *pathname, mode_t mode)
+{
+ int rval;
+
+ rval = mkdir(pathname, mode);
+ if (rval == -1)
+ tst_brkm(TBROK|TERRNO, cleanup_fn, "mkdir failed at %s:%d",
+ file, lineno);
+
+ return (rval);
+}
+
void*
safe_mmap(const char *file, const int lineno, void (*cleanup_fn)(void),
void *addr, size_t length, int prot, int flags, int fd, off_t offset)