Oops, forgot to attach it... Moriyoshi
On Tue, Feb 25, 2003 at 03:14:58AM +0900, Moriyoshi Koizumi wrote: > Hi, > > Attached is the patch for binary-safe strip_tags(). > Although it doesn't appear to be harmful anyhow, I think it needs > review since it modifies rather sensitive part. > > Any objections? > > Moriyoshi > > -- > PHP Development Mailing List <http://www.php.net/> > To unsubscribe, visit: http://www.php.net/unsub.php > >
? ext/standard/filters.c.next Index: ext/standard/php_string.h =================================================================== RCS file: /repository/php4/ext/standard/php_string.h,v retrieving revision 1.71 diff -u -r1.71 php_string.h --- ext/standard/php_string.h 11 Feb 2003 22:47:26 -0000 1.71 +++ ext/standard/php_string.h 24 Feb 2003 17:17:23 -0000 @@ -129,7 +129,7 @@ PHPAPI char *php_str_to_str(char *haystack, int length, char *needle, int needle_len, char *str, int str_len, int *_new_length); PHPAPI char *php_trim(char *c, int len, char *what, int what_len, zval *return_value, int mode TSRMLS_DC); -PHPAPI void php_strip_tags(char *rbuf, int len, int *state, char *allow, int allow_len); +PHPAPI size_t php_strip_tags(char *rbuf, int len, int *state, char *allow, int allow_len); PHPAPI int php_char_to_str(char *str, uint len, char from, char *to, int to_len, pval *result); PHPAPI void php_implode(zval *delim, zval *arr, zval *return_value); PHPAPI void php_explode(zval *delim, zval *str, zval *return_value, int limit); Index: ext/standard/string.c =================================================================== RCS file: /repository/php4/ext/standard/string.c,v retrieving revision 1.359 diff -u -r1.359 string.c --- ext/standard/string.c 18 Feb 2003 18:11:34 -0000 1.359 +++ ext/standard/string.c 24 Feb 2003 17:17:24 -0000 @@ -3299,6 +3299,7 @@ zval **str, **allow=NULL; char *allowed_tags=NULL; int allowed_tags_len=0; + size_t retval_len; switch (ZEND_NUM_ARGS()) { case 1: @@ -3320,8 +3321,8 @@ } convert_to_string_ex(str); buf = estrndup(Z_STRVAL_PP(str), Z_STRLEN_PP(str)); - php_strip_tags(buf, Z_STRLEN_PP(str), NULL, allowed_tags, allowed_tags_len); - RETURN_STRING(buf, 0); + retval_len = php_strip_tags(buf, Z_STRLEN_PP(str), NULL, allowed_tags, allowed_tags_len); + RETURN_STRINGL(buf, retval_len, 0); } /* }}} */ @@ -3555,7 +3556,7 @@ swm: Added ability to strip <?xml tags without assuming it PHP code. */ -PHPAPI void php_strip_tags(char *rbuf, int len, int *stateptr, char *allow, int allow_len) +PHPAPI size_t php_strip_tags(char *rbuf, int len, int *stateptr, char *allow, int allow_len) { char *tbuf, *buf, *p, *tp, *rp, c, lc; int br, i=0, depth=0; @@ -3751,6 +3752,8 @@ efree(tbuf); if (stateptr) *stateptr = state; + + return (size_t)(rp - rbuf); } /* }}} */
-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php