engines/ccgost/gost_eng.c:140: error: BUFFER_OVERRUN_L2
  Offset added: [0, 2147483646] Size: 72 by call to `register_ameth_gost`.
Showing all 15 steps of the trace


engines/ccgost/gost_eng.c:140:10: Call
138.       }
139.   
140.       if (!register_ameth_gost
                ^
141.           (NID_id_GostR3410_2001, &ameth_GostR3410_2001, "GOST2001",
142.            "GOST R 34.10-2001"))

engines/ccgost/gost_ameth.c:666:1: Parameter `*pemstr`
  664.   
  665.   /* ----------------------------------------------------------------------*/
  666. > int register_ameth_gost(int nid, EVP_PKEY_ASN1_METHOD **ameth,
  667.                           const char *pemstr, const char *info)
  668.   {

engines/ccgost/gost_ameth.c:669:14: Call
  667.                           const char *pemstr, const char *info)
  668.   {
  669.       *ameth = EVP_PKEY_asn1_new(nid, ASN1_PKEY_SIGPARAM_NULL, pemstr, info);
                      ^
  670.       if (!*ameth)
  671.           return 0;

crypto/asn1/ameth_lib.c:275:1: Parameter `*pem_str`
    273.   }
    274.   
    275. > EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags,
    276.                                           const char *pem_str, const char *info)
    277.   {

crypto/asn1/ameth_lib.c:294:26: Call
    292.   
    293.       if (pem_str) {
    294.           ameth->pem_str = BUF_strdup(pem_str);
                                    ^
    295.           if (!ameth->pem_str)
    296.               goto err;

crypto/buffer/buf_str.c:73:1: Parameter `*str`
      71.   }
      72.   
      73. > char *BUF_strdup(const char *str)
      74.   {
      75.       if (str == NULL)

crypto/buffer/buf_str.c:77:12: Call
      75.       if (str == NULL)
      76.           return NULL;
      77.       return BUF_strndup(str, strlen(str));
                       ^
      78.   }
      79.   

crypto/buffer/buf_str.c:87:11: <Offset trace>
85.           return NULL;
86.   
87.       siz = BUF_strnlen(str, siz);
                ^
88.   
89.       if (siz >= INT_MAX)

crypto/buffer/buf_str.c:87:11: Call
        85.           return NULL;
        86.   
        87.       siz = BUF_strnlen(str, siz);
                        ^
        88.   
        89.       if (siz >= INT_MAX)

crypto/buffer/buf_str.c:64:1: Parameter `*str`
          62.   #include <openssl/buffer.h>
          63.   
          64. > size_t BUF_strnlen(const char *str, size_t maxlen)
          65.   {
          66.       const char *p;

crypto/buffer/buf_str.c:70:5: Assignment
          68.       for (p = str; maxlen-- != 0 && *p != '\0'; ++p) ;
          69.   
          70.       return p - str;
                    ^
          71.   }
          72.   

crypto/buffer/buf_str.c:87:5: Assignment
        85.           return NULL;
        86.   
        87.       siz = BUF_strnlen(str, siz);
                  ^
        88.   
        89.       if (siz >= INT_MAX)

crypto/buffer/buf_str.c:80:1: <Length trace>
78.   }
79.   
80. > char *BUF_strndup(const char *str, size_t siz)
81.   {
82.       char *ret;

crypto/buffer/buf_str.c:80:1: Parameter `*str`
        78.   }
        79.   
        80. > char *BUF_strndup(const char *str, size_t siz)
        81.   {
        82.       char *ret;

crypto/buffer/buf_str.c:98:5: Array access: Offset added: [0, 2147483646] Size: 72 by call to `register_ameth_gost` 
        96.       }
        97.   
        98.       memcpy(ret, str, siz);
                   ^
        99.       ret[siz] = '\0';
        100.   
