remove non-portable usage of strndupa usage of strndupa is neither C99 nor POSIX, it's a glibc invention, and a dangerous one since alloca() is used behind the scenes which does not give any guarantuees that it won't overflow the stack. --- libkmod/libkmod-util.c 2013-08-26 16:03:22.239000003 +0000 +++ libkmod/libkmod-util.c 2013-08-26 16:07:26.684000003 +0000 @@ -28,6 +28,7 @@ #include #include #include +#include #include #include "libkmod.h" @@ -323,8 +324,11 @@ int mkdir_p(const char *path, int len, mode_t mode) { char *start, *end; - - start = strndupa(path, len); + char buf[PATH_MAX+1]; + snprintf(buf, sizeof buf, "%s", path); + assert(len < sizeof(buf)); + buf[len] = 0; + start = buf; end = start + len; /*