I fixed this in 4.3, but the basic problem is that the API is braindead 
for this socket_iovec_alloc() function.  We shouldn't need to pass the 
number of vectors as the first argument, it should just take the vectors 
directly and the function can figure out how many were passed.  So, I 
think I'd rather change the API for php5 than merge this fix in.  

-Rasmus

> rasmus                Mon Mar 24 14:28:58 2003 EDT
> 
>   Modified files:              (Branch: PHP_4_3)
>     /php4/ext/sockets sockets.c 
>   Log:
>   Fix arg list segfault
>   
>   
> Index: php4/ext/sockets/sockets.c
> diff -u php4/ext/sockets/sockets.c:1.125.2.5 
> php4/ext/sockets/sockets.c:1.125.2.6
> --- php4/ext/sockets/sockets.c:1.125.2.5      Mon Mar 10 10:57:07 2003
> +++ php4/ext/sockets/sockets.c        Mon Mar 24 14:28:58 2003
> @@ -19,7 +19,7 @@
>     
> +----------------------------------------------------------------------+
>   */
>  
> -/* $Id: sockets.c,v 1.125.2.5 2003/03/10 15:57:07 ddhill Exp $ */
> +/* $Id: sockets.c,v 1.125.2.6 2003/03/24 19:28:58 rasmus Exp $ */
>  
>  #ifdef HAVE_CONFIG_H
>  #include "config.h"
> @@ -1106,7 +1106,11 @@
>       
>       convert_to_long_ex(args[0]);
>       num_vectors = Z_LVAL_PP(args[0]);
> -     
> +
> +     if((argc-1)     < num_vectors) {
> +             efree(args);
> +             WRONG_PARAM_COUNT;
> +     }
>       vector_array = emalloc(sizeof(struct iovec)*(num_vectors+1));
>  
>       for (i = 0, j = 1; i < num_vectors; i++, j++) {
> 
> 
> 


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to