]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
better checking of return value of rindex
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Tue, 5 Jun 2001 10:35:31 +0000 (10:35 +0000)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Tue, 5 Jun 2001 10:35:31 +0000 (10:35 +0000)
lib/crypt_bcrypt.c
lib/crypt_srpsha1.c

index d7d93042e42b82d364f26ed253a1ebbc1ca2d028..46f952f9e7a878189b1d68eda9518833882d07ae 100644 (file)
@@ -596,7 +596,7 @@ char *crypt_bcrypt(const char *passwd, const char *salt, MPI g, MPI n)
        uint8 *csalt;
        uint8 *rtext;
        uint8 cost;
-       int i, salt_size = strlen(salt);
+       int i, salt_size = strlen(salt), len;
        unsigned char *local_salt, *v;
        int passwd_len, vsize;
        opaque *tmp;
@@ -615,7 +615,14 @@ char *crypt_bcrypt(const char *passwd, const char *salt, MPI g, MPI n)
        }
        sp++;
 
-       if (_gnutls_sbase64_decode(sp, (int)rindex(sp, ':') - (int)sp, &csalt) < 0) {
+       len = (int)rindex(sp, ':');
+       if (len==0) { /* no ':' was found */
+               gnutls_assert();
+               return NULL;
+       }
+       len -= (int) sp;
+       
+       if (_gnutls_sbase64_decode(sp, len, &csalt) < 0) {
                gnutls_assert();
                return NULL;
        }
index ff41d9ec39cb65ce76a2e10a2af8d4cd5b12092f..91960ac914d87ca2c6083af05c24694f124b62c3 100644 (file)
@@ -62,7 +62,12 @@ char *crypt_srpsha1(const char *username, const char *passwd,
        }
        sp++;
        
-       len = (int)rindex(sp, ':') - (int)sp;
+       len = (int)rindex(sp, ':');
+       if (len==0) { /* parse error */
+               gnutls_assert();
+               return NULL;
+       }
+       len -= (int)sp;
        
        rsalt_size = _gnutls_sbase64_decode(sp, len, &csalt);
        if (rsalt_size < 0) {