- prevent bad things to happen when invalid path are passed to MoveFileEx

This commit is contained in:
Pierre Joye 2010-01-27 01:18:43 +00:00
parent 19b146c9c1
commit 6e6334342b

View File

@ -1042,6 +1042,28 @@ static int php_plain_files_rename(php_stream_wrapper *wrapper, char *url_from, c
return 0;
}
#ifdef PHP_WIN32
/* Prevent bad things to happen when passing ' ' to MoveFileEx */
{
int url_from_len = strlen(url_from);
int url_to_len = strlen(url_to);
char *trimed = php_trim(url_from, url_from_len, NULL, 0, NULL, 1 TSRMLS_CC);
int trimed_len = strlen(trimed);
if (trimed_len == 0 || trimed_len != url_from_len) {
php_win32_docref2_from_error(ERROR_INVALID_NAME, url_from, url_to TSRMLS_CC);
return 0;
}
trimed = php_trim(url_to, url_to_len, NULL, 0, NULL, 1 TSRMLS_CC);
trimed_len = strlen(trimed);
if (trimed_len == 0 || trimed_len != url_to_len) {
php_win32_docref2_from_error(ERROR_INVALID_NAME, url_from, url_to TSRMLS_CC);
return 0;
}
}
#endif
if ((p = strstr(url_from, "://")) != NULL) {
url_from = p + 3;
}