Index: uspace/lib/c/generic/dirent.c
===================================================================
--- uspace/lib/c/generic/dirent.c	(revision 0d14c25ac2ed65826983b3ad5668e42d58e76f65)
+++ uspace/lib/c/generic/dirent.c	(revision 52acfab092a31c43322972aadade508e7b0edf6a)
@@ -39,4 +39,5 @@
 #include <errno.h>
 #include <assert.h>
+#include <string.h>
 
 struct __dirstream {
@@ -92,10 +93,12 @@
 	ssize_t len = 0;
 
-	rc = vfs_read_short(dirp->fd, dirp->pos, &dirp->res.d_name[0],
-	    NAME_MAX + 1, &len);
+	rc = vfs_read_short(dirp->fd, dirp->pos, dirp->res.d_name,
+	    sizeof(dirp->res.d_name), &len);
 	if (rc != EOK) {
 		errno = rc;
 		return NULL;
 	}
+
+	assert(strnlen(dirp->res.d_name, sizeof(dirp->res.d_name)) < sizeof(dirp->res.d_name));
 
 	dirp->pos += len;
Index: uspace/lib/c/include/dirent.h
===================================================================
--- uspace/lib/c/include/dirent.h	(revision 0d14c25ac2ed65826983b3ad5668e42d58e76f65)
+++ uspace/lib/c/include/dirent.h	(revision 52acfab092a31c43322972aadade508e7b0edf6a)
@@ -36,5 +36,4 @@
 #define _LIBC_DIRENT_H_
 
-#include <limits.h>
 #include <_bits/decls.h>
 
@@ -42,5 +41,5 @@
 
 struct dirent {
-	char d_name[__NAME_MAX + 1];
+	char d_name[256];
 };
 
