diff options
Diffstat (limited to 'win32')
-rw-r--r-- | win32/readdir.c | 4 | ||||
-rw-r--r-- | win32/readdir.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/win32/readdir.c b/win32/readdir.c index 43d5deecfd..42b528ad0a 100644 --- a/win32/readdir.c +++ b/win32/readdir.c @@ -103,7 +103,7 @@ struct dirent *readdir(DIR *dp) /* wide to utf8 failed, should never happen. */ return NULL; } - strlcpy(dp->dent.d_name, _tmp, _MAX_FNAME+1); + strlcpy(dp->dent.d_name, _tmp, _MAX_FNAME*4+1); dp->dent.d_reclen = (unsigned short)strlen(dp->dent.d_name); free(_tmp); @@ -138,7 +138,7 @@ int readdir_r(DIR *dp, struct dirent *entry, struct dirent **result) result = NULL; return 0; } - strlcpy(dp->dent.d_name, _tmp, _MAX_FNAME+1); + strlcpy(dp->dent.d_name, _tmp, _MAX_FNAME*4+1); dp->dent.d_reclen = (unsigned short)strlen(dp->dent.d_name); free(_tmp); diff --git a/win32/readdir.h b/win32/readdir.h index 73058f8804..495c36a1a9 100644 --- a/win32/readdir.h +++ b/win32/readdir.h @@ -22,7 +22,7 @@ struct dirent { long d_ino; /* inode (always 1 in WIN32) */ off_t d_off; /* offset to this dirent */ unsigned short d_reclen; /* length of d_name */ - char d_name[PHP_WIN32_IOUTIL_MAXPATHLEN + 1]; /* filename (null terminated) */ + char d_name[_MAX_FNAME*4+1]; /* filename with care about UTF-8 (null terminated) */ }; /* typedef DIR - not the same as Unix */ |