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)