]> granicus.if.org Git - php/commitdiff
Fix for #18638 (str_rot13 bug)
authorRasmus Lerdorf <rasmus@php.net>
Tue, 30 Jul 2002 10:51:33 +0000 (10:51 +0000)
committerRasmus Lerdorf <rasmus@php.net>
Tue, 30 Jul 2002 10:51:33 +0000 (10:51 +0000)
ext/standard/string.c

index 933d0623118ddf12a0829915a671af701c6356c0..cab59b1b4278c3a20fbd02c707dd7dfa1d58e076 100644 (file)
@@ -3887,26 +3887,23 @@ PHP_FUNCTION(sscanf)
    Perform the rot13 transform on a string */
 PHP_FUNCTION(str_rot13)
 {
-       char *str;
-       int str_len;
-    static char xfrom[] = "abcdefghijklmnopqrstuvwxyz"
-        "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-    static char xto[] = "nopqrstuvwxyzabcdefghijklm"
-        "NOPQRSTUVWXYZABCDEFGHIJKLM";
-
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",
-                                                         &str, &str_len) == FAILURE) {
-               return;
+       zval **arg;
+
+    static char xfrom[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+    static char xto[] = "nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM";
+
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg)) {
+               WRONG_PARAM_COUNT;
        }
+       convert_to_string_ex(arg);
+       *return_value = **arg;
+       zval_copy_ctor(return_value);
 
-    php_strtr(str, str_len, xfrom, xto, 52);
-       RETURN_STRINGL(str, str_len, 1);
+    php_strtr(Z_STRVAL_P(return_value), Z_STRLEN_P(return_value), xfrom, xto, 52);
 }
 /* }}} */
 
 
-
-
 /*
  * Local variables:
  * tab-width: 4