Browse Source

MFB51: Fixed bug #31347 (is_dir and is_file (incorrectly) return true for any

string greater then 255 characters).
migration/RELEASE_1_0_0
Ilia Alshanetsky 20 years ago
parent
commit
ec58b74d7f
  1. 2
      TSRM/tsrm_config_common.h
  2. 9
      TSRM/tsrm_virtual_cwd.c
  3. 2
      main/php.h

2
TSRM/tsrm_config_common.h

@ -42,6 +42,8 @@ char *alloca ();
#ifndef MAXPATHLEN
# ifdef PATH_MAX
# define MAXPATHLEN PATH_MAX
# elif defined(MAX_PATH)
# define MAXPATHLEN MAX_PATH
# else
# define MAXPATHLEN 256
# endif

9
TSRM/tsrm_virtual_cwd.c

@ -478,13 +478,14 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
#endif
#if defined(TSRM_WIN32)
{
char *dummy = NULL;
int new_path_length;
new_path_length = GetLongPathName(path, dummy, 0) + 1;
new_path_length = GetLongPathName(path, NULL, 0);
if (new_path_length == 0) {
return 1;
}
/* GetLongPathName already counts the \0 */
new_path = (char *) malloc(new_path_length);
if (!new_path) {
return 1;
@ -856,7 +857,9 @@ CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC)
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL, 1);
if (virtual_file_ex(&new_state, path, NULL, 1)) {
return -1;
}
retval = stat(new_state.cwd, buf);

2
main/php.h

@ -248,6 +248,8 @@ END_EXTERN_C()
#ifndef MAXPATHLEN
# ifdef PATH_MAX
# define MAXPATHLEN PATH_MAX
# elif defined(MAX_PATH)
# define MAXPATHLEN MAX_PATH
# else
# define MAXPATHLEN 256 /* Should be safe for any weird systems that do not define it */
# endif

Loading…
Cancel
Save