apps/passwd.c:840: error: BUFFER_OVERRUN_L3
  Offset added: [-31, 64] Size: 64 by call to `shacrypt`.
Showing all 7 steps of the trace


apps/passwd.c:774:1: Parameter `pw_maxlen`
772.   }
773.   
774. > static int do_passwd(int passed_salt, char **salt_p, char **salt_malloc_p,
775.                        char *passwd, BIO *out, int quiet, int table,
776.                        int reverse, size_t pw_maxlen, passwd_modes mode)

apps/passwd.c:840:16: Call
838.           hash = md5crypt(passwd, "", *salt_p);
839.       if (mode == passwd_sha256 || mode == passwd_sha512)
840.           hash = shacrypt(passwd, (mode == passwd_sha256 ? "5" : "6"), *salt_p);
                      ^
841.       assert(hash != NULL);
842.   

apps/passwd.c:534:9: <Offset trace>
532.       case '5':
533.           sha = EVP_sha256();
534.           buf_size = 32;
               ^
535.           break;
536.       case '6':

apps/passwd.c:534:9: Assignment
  532.       case '5':
  533.           sha = EVP_sha256();
  534.           buf_size = 32;
                 ^
  535.           break;
  536.       case '6':

apps/passwd.c:493:1: <Length trace>
491.    * (note that it's in the public domain)
492.    */
493. > static char *shacrypt(const char *passwd, const char *magic, const char *salt)
494.   {
495.       /* Prefix for optional rounds specification.  */

apps/passwd.c:493:1: Array declaration
  491.    * (note that it's in the public domain)
  492.    */
  493. > static char *shacrypt(const char *passwd, const char *magic, const char *salt)
  494.   {
  495.       /* Prefix for optional rounds specification.  */

apps/passwd.c:653:5: Array access: Offset added: [-31, 64] Size: 64 by call to `shacrypt` 
  651.       for (cp = p_bytes, n = passwd_len; n > buf_size; n -= buf_size, cp += buf_size)
  652.           memcpy(cp, temp_buf, buf_size);
  653.       memcpy(cp, temp_buf, n);
             ^
  654.   
  655.       /* S sequence */
