hi Scott,

How did you reproduce the crash (ssl version, and with which input or
config)? Please add a test case.

Also please keep an eye on the "assign" field of a bug report, it is
here for good  reasons.

Cheers,

On Mon, Mar 30, 2009 at 1:32 AM, Scott MacVicar <scott...@php.net> wrote:
> scottmac                Sun Mar 29 23:32:17 2009 UTC
>
>  Modified files:
>    /php-src/ext/openssl        openssl.c
>  Log:
>  Fix bug #47828 - Converting to UTF-8 can sometimes fail, check error codes 
> and avoid segfault.
>
>
>
> http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/openssl.c?r1=1.179&r2=1.180&diff_format=u
> Index: php-src/ext/openssl/openssl.c
> diff -u php-src/ext/openssl/openssl.c:1.179 
> php-src/ext/openssl/openssl.c:1.180
> --- php-src/ext/openssl/openssl.c:1.179 Tue Mar 10 23:39:27 2009
> +++ php-src/ext/openssl/openssl.c       Sun Mar 29 23:32:17 2009
> @@ -20,7 +20,7 @@
>    +----------------------------------------------------------------------+
>  */
>
> -/* $Id: openssl.c,v 1.179 2009/03/10 23:39:27 helly Exp $ */
> +/* $Id: openssl.c,v 1.180 2009/03/29 23:32:17 scottmac Exp $ */
>
>  #ifdef HAVE_CONFIG_H
>  #include "config.h"
> @@ -557,10 +557,12 @@
>                                str = X509_NAME_ENTRY_get_data(ne);
>                                if (ASN1_STRING_type(str) != 
> V_ASN1_UTF8STRING) {
>                                        to_add_len = 
> ASN1_STRING_to_UTF8(&to_add, str);
> -                                       
> add_next_index_utf8_stringl(subentries, (char *)to_add, to_add_len, 1);
>                                } else {
>                                        to_add = ASN1_STRING_data(str);
>                                        to_add_len = ASN1_STRING_length(str);
> +                               }
> +
> +                               if (to_add_len != -1) {
>                                        
> add_next_index_utf8_stringl(subentries, (char *)to_add, to_add_len, 1);
>                                }
>                        }
> @@ -573,7 +575,7 @@
>                } else {
>                        zval_dtor(subentries);
>                        FREE_ZVAL(subentries);
> -                       if (obj_cnt && str) {
> +                       if (obj_cnt && str && to_add_len != -1) {
>                                add_ascii_assoc_utf8_stringl(subitem, sname, 
> (char *)to_add, to_add_len, 1);
>                        }
>                }
>
>
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>



-- 
Pierre

http://blog.thepimp.net | http://www.libgd.org

--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to