[co]fb128.c: fix "n=0" bug.
[openssl.git] / crypto / modes / cfb128.c
index 98f4cf315cd7096ccd4fea5677201a52e312415b..e5938c6137c41d6c5fd93da03360456ff5b80cb6 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--) {