diff --git a/ext/standard/fsock.c b/ext/standard/fsock.c index dd273a4e1d2..6a5c388eeb4 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; }