pajoye                                   Tue, 23 Feb 2010 17:26:49 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=295419

Log:
- return *0/*1 on failure instead of FALSE, to avoid possible issues with bad 
user code

Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/standard/crypt.c
    U   php/php-src/trunk/ext/standard/crypt.c

Modified: php/php-src/branches/PHP_5_3/ext/standard/crypt.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/standard/crypt.c   2010-02-23 15:31:22 UTC 
(rev 295418)
+++ php/php-src/branches/PHP_5_3/ext/standard/crypt.c   2010-02-23 17:26:49 UTC 
(rev 295419)
@@ -198,7 +198,11 @@

                        crypt_res = php_sha512_crypt_r(str, salt, output, 
needed);
                        if (!crypt_res) {
-                               RETVAL_FALSE;
+                               if (salt[0]=='*' && salt[1]=='0') {
+                                       RETVAL_STRING("*1", 1);
+                               } else {
+                                       RETVAL_STRING("*0", 1);
+                               }
                        } else {
                                RETVAL_STRING(output, 1);
                        }
@@ -217,7 +221,11 @@

                        crypt_res = php_sha256_crypt_r(str, salt, output, 
needed);
                        if (!crypt_res) {
-                               RETVAL_FALSE;
+                               if (salt[0]=='*' && salt[1]=='0') {
+                                       RETVAL_STRING("*1", 1);
+                               } else {
+                                       RETVAL_STRING("*0", 1);
+                               }
                        } else {
                                RETVAL_STRING(output, 1);
                        }
@@ -238,7 +246,11 @@

                        crypt_res = php_crypt_blowfish_rn(str, salt, output, 
sizeof(output));
                        if (!crypt_res) {
-                               RETVAL_FALSE;
+                               if (salt[0]=='*' && salt[1]=='0') {
+                                       RETVAL_STRING("*1", 1);
+                               } else {
+                                       RETVAL_STRING("*0", 1);
+                               }
                        } else {
                                RETVAL_STRING(output, 1);
                        }
@@ -250,7 +262,11 @@

                        crypt_res = _crypt_extended_r(str, salt, &buffer);
                        if (!crypt_res) {
-                               RETURN_FALSE;
+                               if (salt[0]=='*' && salt[1]=='0') {
+                                       RETURN_STRING("*1", 1);
+                               } else {
+                                       RETURN_STRING("*0", 1);
+                               }
                        } else {
                                RETURN_STRING(crypt_res, 1);
                        }
@@ -270,7 +286,11 @@
 #  endif
                crypt_res = crypt_r(str, salt, &buffer);
                if (!crypt_res) {
-                       RETURN_FALSE;
+                               if (salt[0]=='*' && salt[1]=='0') {
+                                       RETURN_STRING("*1", 1);
+                               } else {
+                                       RETURN_STRING("*0", 1);
+                               }
                } else {
                        RETURN_STRING(crypt_res, 1);
                }

Modified: php/php-src/trunk/ext/standard/crypt.c
===================================================================
--- php/php-src/trunk/ext/standard/crypt.c      2010-02-23 15:31:22 UTC (rev 
295418)
+++ php/php-src/trunk/ext/standard/crypt.c      2010-02-23 17:26:49 UTC (rev 
295419)
@@ -199,7 +199,11 @@

                        crypt_res = php_sha512_crypt_r(str, salt, output, 
needed);
                        if (!crypt_res) {
-                               RETVAL_FALSE;
+                               if (salt[0]=='*' && salt[1]=='0') {
+                                       RETVAL_STRING("*1", 1);
+                               } else {
+                                       RETVAL_STRING("*0", 1);
+                               }
                        } else {
                                RETVAL_STRING(output, 1);
                        }
@@ -218,7 +222,11 @@

                        crypt_res = php_sha256_crypt_r(str, salt, output, 
needed);
                        if (!crypt_res) {
-                               RETVAL_FALSE;
+                               if (salt[0]=='*' && salt[1]=='0') {
+                                       RETVAL_STRING("*1", 1);
+                               } else {
+                                       RETVAL_STRING("*0", 1);
+                               }
                        } else {
                                RETVAL_STRING(output, 1);
                        }
@@ -239,7 +247,11 @@

                        crypt_res = php_crypt_blowfish_rn(str, salt, output, 
sizeof(output));
                        if (!crypt_res) {
-                               RETVAL_FALSE;
+                               if (salt[0]=='*' && salt[1]=='0') {
+                                       RETVAL_STRING("*1", 1);
+                               } else {
+                                       RETVAL_STRING("*0", 1);
+                               }
                        } else {
                                RETVAL_STRING(output, 1);
                        }
@@ -251,7 +263,11 @@

                        crypt_res = _crypt_extended_r(str, salt, &buffer);
                        if (!crypt_res) {
-                               RETURN_FALSE;
+                               if (salt[0]=='*' && salt[1]=='0') {
+                                       RETURN_STRING("*1", 1);
+                               } else {
+                                       RETURN_STRING("*0", 1);
+                               }
                        } else {
                                RETURN_STRING(crypt_res, 1);
                        }
@@ -271,7 +287,11 @@
 #  endif
                crypt_res = crypt_r(str, salt, &buffer);
                if (!crypt_res) {
-                       RETURN_FALSE;
+                               if (salt[0]=='*' && salt[1]=='0') {
+                                       RETURN_STRING("*1", 1);
+                               } else {
+                                       RETURN_STRING("*0", 1);
+                               }
                } else {
                        RETURN_STRING(crypt_res, 1);
                }

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to