summaryrefslogtreecommitdiff
path: root/ext/standard/fsock.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2000-12-19 11:23:27 +0000
committerStanislav Malyshev <stas@php.net>2000-12-19 11:23:27 +0000
commitf487f5960a28449235fd4b4e396834431b820873 (patch)
treee1f7183e9566389b2a5db0d1d57ebd93dbec7ba6 /ext/standard/fsock.c
parent5cc6344edc085b66ccf2a85be25f90a4fa0b992a (diff)
downloadphp-git-f487f5960a28449235fd4b4e396834431b820873.tar.gz
Fix possible crash
Diffstat (limited to 'ext/standard/fsock.c')
-rw-r--r--ext/standard/fsock.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/ext/standard/fsock.c b/ext/standard/fsock.c
index dd273a4e1d..6a5c388eeb 100644
--- a/ext/standard/fsock.c
+++ b/ext/standard/fsock.c
@@ -259,12 +259,13 @@ static void php_fsockopen(INTERNAL_FUNCTION_PARAMETERS, int persistent) {
struct sockaddr_in server;
memset(&server, 0, sizeof(server));
- if((*args[0])->value.str.val[0] == 'u' &&
- (*args[0])->value.str.val[1] == 'd' &&
- (*args[0])->value.str.val[2] == 'p' &&
- (*args[0])->value.str.val[3] == ':' &&
- (*args[0])->value.str.val[4] == '/' &&
- (*args[0])->value.str.val[5] == '/') {
+ if(Z_STRLEN_PP(args[0]) >= 6 &&
+ (*args[0])->value.str.val[0] == 'u' &&
+ (*args[0])->value.str.val[1] == 'd' &&
+ (*args[0])->value.str.val[2] == 'p' &&
+ (*args[0])->value.str.val[3] == ':' &&
+ (*args[0])->value.str.val[4] == '/' &&
+ (*args[0])->value.str.val[5] == '/') {
udp = 1;
}