base/regdump.h: Pass cooked register index to `REGDEF_GPX86_COMMON'.
[catacomb] / symm / cbc-def.h
index 59c76f8..480f579 100644 (file)
@@ -155,7 +155,7 @@ void pre##_cbcencrypt(pre##_cbcctx *ctx,                            \
 {                                                                      \
   const octet *s = src;                                                        \
   octet *d = dest;                                                     \
-  octet b[PRE##_BLKSZ];                                                        \
+  octet b[PRE##_BLKSZ], bb[PRE##_BLKSZ];                               \
   octet y;                                                             \
   unsigned i;                                                          \
                                                                        \
@@ -173,7 +173,8 @@ void pre##_cbcencrypt(pre##_cbcctx *ctx,                            \
   if (sz < PRE##_BLKSZ) {                                              \
     pre##_eblk(&ctx->ctx, ctx->a, ctx->a);                             \
     BLKC_STORE(PRE, b, ctx->a);                                                \
-    if (d) { for (i = 0; i < sz; i++) d[i] = b[i] ^ (s ? s[i] : 0); }  \
+    if (!d) d = bb;                                                    \
+    for (i = 0; i < sz; i++) d[i] = b[i] ^ (s ? s[i] : 0);             \
     memmove(b, b + sz, PRE##_BLKSZ - sz);                              \
     memcpy(b + PRE##_BLKSZ - sz, d, sz);                               \
     BLKC_LOAD(PRE, ctx->a, b);                                         \