Re: cvs: php-src /ext/soap php_encoding.c

From: Date: Tue, 07 Sep 2004 18:46:20 +0000
Subject: Re: cvs: php-src /ext/soap php_encoding.c
References: 1  Groups: php.cvs 
Request: Send a blank email to php-cvs+get-28582@lists.php.net to get a copy of this message
Hello Dmitry, that's missing a few lines: } else if ((c & 0xfc) == 0xf8) { if ((s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80) { return 0; } } else if ((c & 0xfe) == 0xfc) { if ((s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80) { return 0; } regards marcus Tuesday, September 7, 2004, 4:34:46 PM, you wrote: > dmitry Tue Sep 7 10:34:46 2004 EDT > Modified files: > /php-src/ext/soap php_encoding.c > Log: > Make ext/soap work around libxml2 bug in xmlCheckUTF8 (2.6.7-2.6.13) > > http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.74&r2=1.75&ty=u > Index: php-src/ext/soap/php_encoding.c > diff -u php-src/ext/soap/php_encoding.c:1.74 > php-src/ext/soap/php_encoding.c:1.75 > --- php-src/ext/soap/php_encoding.c:1.74 Thu Aug 26 14:40:10 2004 > +++ php-src/ext/soap/php_encoding.c Tue Sep 7 10:34:46 2004 > @@ -17,7 +17,7 @@ > | Dmitry Stogov <dmitry@zend.com> > > +----------------------------------------------------------------------+ > */ > -/* $Id: php_encoding.c,v 1.74 2004/08/26 18:40:10 dmitry Exp $ */ > +/* $Id: php_encoding.c,v 1.75 2004/09/07 14:34:46 dmitry Exp $ */ > #include <time.h> > @@ -581,6 +581,32 @@ > return ret; > } > +static int php_soap_xmlCheckUTF8(const unsigned char *s) > +{ > + int i; > + unsigned char c; > + > + for (i = 0; (c = s[i++]);) { > + if ((c & 0x80) == 0) { > + } else if ((c & 0xe0) == 0xc0) { > + if ((s[i++] & 0xc0) != 0x80) { > + return 0; > + } > + } else if ((c & 0xf0) == 0xe0) { > + if ((s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80) { > + return 0; > + } > + } else if ((c & 0xf8) == 0xf0) { > + if ((s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != > 0x80) { > + return 0; > + } > + } else { > + return 0; > + } > + } > + return 1; > +} > + > static xmlNodePtr to_xml_string(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) > { > xmlNodePtr ret; > @@ -612,12 +638,12 @@ > efree(str); > str = estrdup(xmlBufferContent(out)); > new_len = n; > - } else if (!xmlCheckUTF8(str)) { > + } else if (!php_soap_xmlCheckUTF8(str)) { > soap_error1(E_ERROR, "Encoding: string '%s' is not a valid utf-8 > string", str); > } > xmlBufferFree(out); > xmlBufferFree(in); > - } else if (!xmlCheckUTF8(str)) { > + } else if (!php_soap_xmlCheckUTF8(str)) { > soap_error1(E_ERROR, "Encoding: string '%s' is not a valid utf-8 > string", str); > } -- Best regards, Marcus mailto:helly@php.net

« previous php.cvs (#28582) next »