@@ -66,12 +66,11 @@ inline ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags)
6666}
6767#endif
6868
69- #define LONG_CHECK_VALID_INT (l ) \
69+ #define LONG_CHECK_VALID_INT (l , arg_pos ) \
7070 do { \
7171 if ((l) < INT_MIN && (l) > INT_MAX) { \
72- php_error_docref(NULL, E_WARNING, "The value " ZEND_LONG_FMT " does not fit inside " \
73- "the boundaries of a native integer", (l)); \
74- return; \
72+ zend_argument_value_error((arg_pos), "must be between %d and %d", INT_MIN, INT_MAX); \
73+ RETURN_THROWS(); \
7574 } \
7675 } while (0)
7776
@@ -177,7 +176,7 @@ PHP_FUNCTION(socket_sendmsg)
177176 RETURN_THROWS ();
178177 }
179178
180- LONG_CHECK_VALID_INT (flags );
179+ LONG_CHECK_VALID_INT (flags , 3 );
181180
182181 if ((php_sock = (php_socket * )zend_fetch_resource (Z_RES_P (zsocket ),
183182 php_sockets_le_socket_name , php_sockets_le_socket ())) == NULL ) {
@@ -222,7 +221,7 @@ PHP_FUNCTION(socket_recvmsg)
222221 RETURN_THROWS ();
223222 }
224223
225- LONG_CHECK_VALID_INT (flags );
224+ LONG_CHECK_VALID_INT (flags , 3 );
226225
227226 if ((php_sock = (php_socket * )zend_fetch_resource (Z_RES_P (zsocket ),
228227 php_sockets_le_socket_name , php_sockets_le_socket ())) == NULL ) {
@@ -285,21 +284,20 @@ PHP_FUNCTION(socket_cmsg_space)
285284 RETURN_THROWS ();
286285 }
287286
288- LONG_CHECK_VALID_INT (level );
289- LONG_CHECK_VALID_INT (type );
290- LONG_CHECK_VALID_INT (n );
287+ LONG_CHECK_VALID_INT (level , 1 );
288+ LONG_CHECK_VALID_INT (type , 2 );
289+ LONG_CHECK_VALID_INT (n , 3 );
291290
292291 if (n < 0 ) {
293- php_error_docref (NULL , E_WARNING , "The third argument "
294- "cannot be negative" );
295- return ;
292+ zend_argument_value_error (3 , "must be greater or equal than 0" );
293+ RETURN_THROWS ();
296294 }
297295
298296 entry = get_ancillary_reg_entry (level , type );
299297 if (entry == NULL ) {
300- php_error_docref ( NULL , E_WARNING , "The pair level " ZEND_LONG_FMT "/ type " ZEND_LONG_FMT " is "
301- "not supported by PHP" , level , type );
302- return ;
298+ zend_value_error ( "Pair level " ZEND_LONG_FMT " and/or type " ZEND_LONG_FMT " is not supported" ,
299+ level , type );
300+ RETURN_THROWS () ;
303301 }
304302
305303 if (entry -> var_el_size > 0 ) {
@@ -310,9 +308,8 @@ PHP_FUNCTION(socket_cmsg_space)
310308 if (n > n_max /* zend_long overflow */
311309 || total_size > ZEND_LONG_MAX
312310 || total_size < size /* align overflow */ ) {
313- php_error_docref (NULL , E_WARNING , "The value for the "
314- "third argument (" ZEND_LONG_FMT ") is too large" , n );
315- return ;
311+ zend_argument_value_error (3 , "is too large" );
312+ RETURN_THROWS ();
316313 }
317314 }
318315
0 commit comments