diff options
author | Zeev Suraski <zeev@php.net> | 2003-01-07 12:11:40 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2003-01-07 12:11:40 +0000 |
commit | e8de102cd64da2e2825cb020d42e45680ba397e0 (patch) | |
tree | b2e711472b2afa7346d871036508b08564f6b130 /TSRM | |
parent | 651cea08f01760334bf6b828642d97e331842963 (diff) | |
download | php-git-e8de102cd64da2e2825cb020d42e45680ba397e0.tar.gz |
Fix leaks
Diffstat (limited to 'TSRM')
-rw-r--r-- | TSRM/TSRM.c | 1 | ||||
-rw-r--r-- | TSRM/tsrm_virtual_cwd.c | 14 |
2 files changed, 10 insertions, 5 deletions
diff --git a/TSRM/TSRM.c b/TSRM/TSRM.c index fe096e9c28..f39114d770 100644 --- a/TSRM/TSRM.c +++ b/TSRM/TSRM.c @@ -508,6 +508,7 @@ TSRM_API void tsrm_mutex_free(MUTEX_T mutexp) if (mutexp) { #ifdef TSRM_WIN32 DeleteCriticalSection(mutexp); + free(mutexp); #elif defined(NETWARE) #ifdef USE_MPK kMutexFree(mutexp); diff --git a/TSRM/tsrm_virtual_cwd.c b/TSRM/tsrm_virtual_cwd.c index 4706ba102c..c14080ef05 100644 --- a/TSRM/tsrm_virtual_cwd.c +++ b/TSRM/tsrm_virtual_cwd.c @@ -474,19 +474,23 @@ CWD_API int virtual_chdir_file(const char *path, int (*p_chdir)(const char *path CWD_API char *virtual_realpath(const char *path, char *real_path TSRMLS_DC) { cwd_state new_state; - int retval; + char *retval; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - retval = virtual_file_ex(&new_state, path, NULL, 1); - if (!retval) { + if (virtual_file_ex(&new_state, path, NULL, 1)==0) { int len = new_state.cwd_length>MAXPATHLEN-1?MAXPATHLEN-1:new_state.cwd_length; + memcpy(real_path, new_state.cwd, len); real_path[len] = '\0'; - return real_path; + retval = real_path; + } else { + retval = NULL; } - return NULL; + CWD_STATE_FREE(&new_state); + + return retval; } CWD_API int virtual_filepath_ex(const char *path, char **filepath, verify_path_func verify_path TSRMLS_DC) |