cvs: /php4 TODO /php4/ext/standard string.c
| From: | Andrei Zmievski | Date: | Mon, 20 Dec 1999 20:44:18 +0000 |
| Subject: | cvs: /php4 TODO /php4/ext/standard string.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-8252@lists.php.net to get a copy of this message | ||
andrei Mon Dec 20 15:44:18 1999 EDT
Modified files:
/php4 TODO
/php4/ext/standard string.c
Log:
Made quotemeta() binary-safe.
@ Made quotemeta() binary-safe. (Andrei)
Index: php4/TODO
diff -u php4/TODO:1.22 php4/TODO:1.23
--- php4/TODO:1.22 Thu Dec 16 18:47:10 1999
+++ php4/TODO Mon Dec 20 15:43:46 1999
@@ -33,5 +33,4 @@
dirname()
strrpos()
strrchr()
- quotemeta()
strip_tags()
Index: php4/ext/standard/string.c
diff -u php4/ext/standard/string.c:1.78 php4/ext/standard/string.c:1.79
--- php4/ext/standard/string.c:1.78 Sun Dec 19 09:39:41 1999
+++ php4/ext/standard/string.c Mon Dec 20 15:43:47 1999
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: string.c,v 1.78 1999/12/19 14:39:41 sas Exp $ */
+/* $Id: string.c,v 1.79 1999/12/20 20:43:47 andrei Exp $ */
/* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
@@ -991,8 +991,9 @@
Quote meta characters */
PHP_FUNCTION(quotemeta)
{
- pval **arg;
+ zval **arg;
char *str, *old;
+ char *old_end;
char *p, *q;
char c;
@@ -1002,14 +1003,16 @@
convert_to_string_ex(arg);
old = (*arg)->value.str.val;
+ old_end = (*arg)->value.str.val + (*arg)->value.str.len;
- if (!*old) {
+ if (old == old_end) {
RETURN_FALSE;
}
str = emalloc(2 * (*arg)->value.str.len + 1);
- for(p = old, q = str; (c = *p); p++) {
+ for(p = old, q = str; p != old_end; p++) {
+ c = *p;
switch(c) {
case '.':
case '\\':
@@ -1029,7 +1032,7 @@
}
}
*q = 0;
- RETVAL_STRING(erealloc(str, q - str + 1), 0);
+ RETVAL_STRINGL(erealloc(str, q - str + 1), q - str, 0);
}
/* }}} */