diff --git a/libkmod/libkmod-util.c b/libkmod/libkmod-util.c
index df12433..142e767 100644
--- a/shared/util.c
+++ b/shared/util.c
@@ -334,7 +334,9 @@ int mkdir_p(const char *path, int len, mode_t mode)
 {
 	char *start, *end;
 
-	start = strndupa(path, len);
+	start = alloca(len+1);
+	strncpy(start, path, len);
+	start[len] = '\0';
 	end = start + len;
 
 	/*