[co]cf128.c: fix "n=0" bug [from HEAD].
authorAndy Polyakov <appro@openssl.org>
Wed, 14 Apr 2010 07:47:53 +0000 (07:47 +0000)
committerAndy Polyakov <appro@openssl.org>
Wed, 14 Apr 2010 07:47:53 +0000 (07:47 +0000)
crypto/modes/cfb128.c
crypto/modes/ofb128.c

index 98f4cf3..e5938c6 100644 (file)
@@ -96,15 +96,15 @@ void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out,
 #endif
                while (len>=16) {
                        (*block)(ivec, ivec, key);
-                       for (n=0; n<16; n+=sizeof(size_t)) {
+                       for (; n<16; n+=sizeof(size_t)) {
                                *(size_t*)(out+n) =
                                *(size_t*)(ivec+n) ^= *(size_t*)(in+n);
                        }
                        len -= 16;
                        out += 16;
                        in  += 16;
+                       n = 0;
                }
-               n = 0;
                if (len) {
                        (*block)(ivec, ivec, key);
                        while (len--) {
@@ -141,7 +141,7 @@ void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out,
 #endif
                while (len>=16) {
                        (*block)(ivec, ivec, key);
-                       for (n=0; n<16; n+=sizeof(size_t)) {
+                       for (; n<16; n+=sizeof(size_t)) {
                                size_t t = *(size_t*)(in+n);
                                *(size_t*)(out+n) = *(size_t*)(ivec+n) ^ t;
                                *(size_t*)(ivec+n) = t;
@@ -149,8 +149,8 @@ void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out,
                        len -= 16;
                        out += 16;
                        in  += 16;
+                       n = 0;
                }
-               n = 0;
                if (len) {
                        (*block)(ivec, ivec, key);
                        while (len--) {
index 09b3430..c732e2e 100644 (file)
@@ -95,14 +95,14 @@ void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out,
 #endif
                while (len>=16) {
                        (*block)(ivec, ivec, key);
-                       for (n=0; n<16; n+=sizeof(size_t))
+                       for (; n<16; n+=sizeof(size_t))
                                *(size_t*)(out+n) =
                                *(size_t*)(in+n) ^ *(size_t*)(ivec+n);
                        len -= 16;
                        out += 16;
                        in  += 16;
+                       n = 0;
                }
-               n = 0;
                if (len) {
                        (*block)(ivec, ivec, key);
                        while (len--) {