Browse Source

HASH_PROCESS: fix overflow test

state_var.length counts bits, inlen is in bytes.
Patrick Oppenlander 5 years ago
parent
commit
40b9560521
1 changed files with 1 additions and 1 deletions
  1. 1 1
      src/headers/tomcrypt_private.h

+ 1 - 1
src/headers/tomcrypt_private.h

@@ -90,7 +90,7 @@ int func_name (hash_state * md, const unsigned char *in, unsigned long inlen)
     if (md-> state_var .curlen > sizeof(md-> state_var .buf)) {                             \
        return CRYPT_INVALID_ARG;                                                            \
     }                                                                                       \
-    if ((md-> state_var .length + inlen) < md-> state_var .length) {                        \
+    if ((md-> state_var .length + inlen * 8) < md-> state_var .length) {                        \
       return CRYPT_HASH_OVERFLOW;                                                           \
     }                                                                                       \
     while (inlen > 0) {                                                                     \