Fix some undefined behaviour
authorMikko Rasa <tdb@tdb.fi>
Wed, 2 Nov 2011 11:58:07 +0000 (13:58 +0200)
committerMikko Rasa <tdb@tdb.fi>
Wed, 2 Nov 2011 11:58:07 +0000 (13:58 +0200)
src/aes/aeskey.c

index 5e0a645..548bfbd 100755 (executable)
@@ -366,8 +366,8 @@ aes_rval aes_decrypt_key192(const unsigned char *key, aes_decrypt_ctx cx[1])
 #endif
     }
 #else
-    cx->ks[4] = ff(ss[4] = word_in(key, 4));
-    cx->ks[5] = ff(ss[5] = word_in(key, 5));
+    ss[4] = word_in(key, 4); cx->ks[4] = ff(ss[4]);
+    ss[5] = word_in(key, 5); cx->ks[5] = ff(ss[5]);
     kdf6(cx->ks, 0); kd6(cx->ks, 1);
     kd6(cx->ks, 2);  kd6(cx->ks, 3);
     kd6(cx->ks, 4);  kd6(cx->ks, 5);
@@ -410,10 +410,10 @@ aes_rval aes_decrypt_key256(const unsigned char *key, aes_decrypt_ctx cx[1])
 #endif
     }
 #else
-    cx->ks[4] = ff(ss[4] = word_in(key, 4));
-    cx->ks[5] = ff(ss[5] = word_in(key, 5));
-    cx->ks[6] = ff(ss[6] = word_in(key, 6));
-    cx->ks[7] = ff(ss[7] = word_in(key, 7));
+    ss[4] = word_in(key, 4); cx->ks[4] = ff(ss[4]);
+    ss[5] = word_in(key, 5); cx->ks[5] = ff(ss[5]);
+    ss[6] = word_in(key, 6); cx->ks[6] = ff(ss[6]);
+    ss[7] = word_in(key, 7); cx->ks[7] = ff(ss[7]);
     kdf8(cx->ks, 0); kd8(cx->ks, 1);
     kd8(cx->ks, 2);  kd8(cx->ks, 3);
     kd8(cx->ks, 4);  kd8(cx->ks, 5);