ssl/ssl_cert.c:608: error: BUFFER_OVERRUN_L3
  Offset: [16, +oo] Size: [1, +oo] by call to `lh_X509_NAME_insert`.
Showing all 17 steps of the trace


ssl/ssl_cert.c:577:38: Call
575.       X509_NAME *xn = NULL;
576.       STACK_OF(X509_NAME) *ret = NULL;
577.       LHASH_OF(X509_NAME) *name_hash = lh_X509_NAME_new(xname_hash, xname_cmp);
                                            ^
578.   
579.       if ((name_hash == NULL) || (in == NULL)) {

ssl/ssl_locl.h:597:1: Call
  595.   DEFINE_LHASH_OF(SSL_SESSION);
  596.   /* Needed in ssl_cert.c */
  597. > DEFINE_LHASH_OF(X509_NAME);
  598.   
  599.   # define TLSEXT_KEYNAME_LENGTH 16

crypto/lhash/lhash.c:38:5: Assignment
    36.       ret->hash = ((h == NULL) ? (OPENSSL_LH_HASHFUNC)OPENSSL_LH_strhash : h);
    37.       ret->num_nodes = MIN_NODES / 2;
    38.       ret->num_alloc_nodes = MIN_NODES;
              ^
    39.       ret->pmax = MIN_NODES / 2;
    40.       ret->up_load = UP_LOAD;

ssl/ssl_cert.c:608:13: Call
606.               xn = NULL;
607.           } else {
608.               lh_X509_NAME_insert(name_hash, xn);
                   ^
609.               if (!sk_X509_NAME_push(ret, xn))
610.                   goto err;

ssl/ssl_locl.h:597:1: Parameter `lh->num_alloc_nodes`
  595.   DEFINE_LHASH_OF(SSL_SESSION);
  596.   /* Needed in ssl_cert.c */
  597. > DEFINE_LHASH_OF(X509_NAME);
  598.   
  599.   # define TLSEXT_KEYNAME_LENGTH 16

ssl/ssl_locl.h:597:1: Call
  595.   DEFINE_LHASH_OF(SSL_SESSION);
  596.   /* Needed in ssl_cert.c */
  597. > DEFINE_LHASH_OF(X509_NAME);
  598.   
  599.   # define TLSEXT_KEYNAME_LENGTH 16

crypto/lhash/lhash.c:70:1: Parameter `lh->num_alloc_nodes`
    68.   }
    69.   
    70. > void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data)
    71.   {
    72.       unsigned long hash;

crypto/lhash/lhash.c:77:77: Call
    75.   
    76.       lh->error = 0;
    77.       if ((lh->up_load <= (lh->num_items * LH_LOAD_MULT / lh->num_nodes)) && !expand(lh))
                                                                                      ^
    78.           return NULL;        /* 'lh->error++' already done in 'expand' */
    79.   

crypto/lhash/lhash.c:187:1: <Offset trace>
185.   }
186.   
187. > static int expand(OPENSSL_LHASH *lh)
188.   {
189.       OPENSSL_LH_NODE **n, **n1, **n2, *np;

crypto/lhash/lhash.c:187:1: Parameter `lh->num_alloc_nodes`
      185.   }
      186.   
      187. > static int expand(OPENSSL_LHASH *lh)
      188.   {
      189.       OPENSSL_LH_NODE **n, **n1, **n2, *np;

crypto/lhash/lhash.c:213:9: Assignment
      211.   
      212.       if ((lh->p) >= lh->pmax) {
      213.           j = (int)lh->num_alloc_nodes * 2;
                     ^
      214.           n = OPENSSL_realloc(lh->b, (int)(sizeof(OPENSSL_LH_NODE *) * j));
      215.           if (n == NULL) {

crypto/lhash/lhash.c:187:1: <Length trace>
185.   }
186.   
187. > static int expand(OPENSSL_LHASH *lh)
188.   {
189.       OPENSSL_LH_NODE **n, **n1, **n2, *np;

crypto/lhash/lhash.c:187:1: Parameter `*lh->b`
      185.   }
      186.   
      187. > static int expand(OPENSSL_LHASH *lh)
      188.   {
      189.       OPENSSL_LH_NODE **n, **n1, **n2, *np;

crypto/lhash/lhash.c:214:13: Call
      212.       if ((lh->p) >= lh->pmax) {
      213.           j = (int)lh->num_alloc_nodes * 2;
      214.           n = OPENSSL_realloc(lh->b, (int)(sizeof(OPENSSL_LH_NODE *) * j));
                         ^
      215.           if (n == NULL) {
      216.               /* fputs("realloc error in lhash",stderr); */

crypto/mem.c:117:9: Assignment
        115.       if (num == 0) {
        116.           CRYPTO_free(str, file, line);
        117.           return NULL;
                       ^
        118.       }
        119.   

crypto/lhash/lhash.c:214:9: Assignment
      212.       if ((lh->p) >= lh->pmax) {
      213.           j = (int)lh->num_alloc_nodes * 2;
      214.           n = OPENSSL_realloc(lh->b, (int)(sizeof(OPENSSL_LH_NODE *) * j));
                     ^
      215.           if (n == NULL) {
      216.               /* fputs("realloc error in lhash",stderr); */

crypto/lhash/lhash.c:222:13: Array access: Offset: [16, +oo] Size: [1, +oo] by call to `lh_X509_NAME_insert` 
      220.           }
      221.           for (i = (int)lh->num_alloc_nodes; i < j; i++) /* 26/02/92 eay */
      222.               n[i] = NULL;        /* 02/03/92 eay */
                         ^
      223.           lh->pmax = lh->num_alloc_nodes;
      224.           lh->num_alloc_nodes = j;
