goto close_basedir_fd;
}
+ char dbuf[offsetof(struct dirent, d_name) + PATH_MAX + 1];
struct dirent *de;
- while (::readdir_r(dir, (struct dirent *)buf, &de) == 0) {
+ while (::readdir_r(dir, (struct dirent *)dbuf, &de) == 0) {
if (!de)
break;
long long unsigned c;
return r;
}
- struct dirent sde, *de;
- while ((r = ::readdir_r(dir, &sde, &de)) == 0) {
+ char buf[offsetof(struct dirent, d_name) + PATH_MAX + 1];
+ struct dirent *de;
+ while ((r = ::readdir_r(dir, (struct dirent *)&buf, &de)) == 0) {
if (!de)
break;
if (de->d_type == DT_UNKNOWN) {