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

Reply via email to