crypto/err/err.c:531: error: BUFFER_OVERRUN_L3
  Offset: [16, +oo] Size: [1, +oo] by call to `lh_insert`.
Showing all 15 steps of the trace


crypto/err/err.c:526:12: Call
524.   
525.       CRYPTO_w_lock(CRYPTO_LOCK_ERR);
526.       hash = get_hash(1, 0);
                  ^
527.       if (hash) {
528.           for (; str->error; str++) {

crypto/err/err.c:280:26: Call
  278.           CRYPTO_w_lock(CRYPTO_LOCK_ERR);
  279.       if (!int_error_hash && create) {
  280.           int_error_hash = lh_ERR_STRING_DATA_new();
                                  ^
  281.       }
  282.       if (int_error_hash != NULL)

crypto/lhash/lhash.c:124:5: Assignment
    122.       ret->hash = ((h == NULL) ? (LHASH_HASH_FN_TYPE)lh_strhash : h);
    123.       ret->num_nodes = MIN_NODES / 2;
    124.       ret->num_alloc_nodes = MIN_NODES;
               ^
    125.       ret->pmax = MIN_NODES / 2;
    126.       ret->up_load = UP_LOAD;

crypto/err/err.c:531:19: Call
529.               if (lib)
530.                   str->error |= ERR_PACK(lib, 0, 0);
531.               (void)lh_ERR_STRING_DATA_insert(hash, str);
                         ^
532.           }
533.       }

crypto/lhash/lhash.c:156:1: Parameter `*lh->b`
  154.   }
  155.   
  156. > void *lh_insert(_LHASH *lh, void *data)
  157.   {
  158.       unsigned long hash;

crypto/lhash/lhash.c:164:9: Call
  162.       lh->error = 0;
  163.       if (lh->up_load <= (lh->num_items * LH_LOAD_MULT / lh->num_nodes))
  164.           expand(lh);
                 ^
  165.   
  166.       rn = getrn(lh, data, &hash);

crypto/lhash/lhash.c:279:1: <Offset trace>
277.   }
278.   
279. > static void expand(_LHASH *lh)
280.   {
281.       LHASH_NODE **n, **n1, **n2, *np;

crypto/lhash/lhash.c:279:1: Parameter `lh->num_alloc_nodes`
    277.   }
    278.   
    279. > static void expand(_LHASH *lh)
    280.   {
    281.       LHASH_NODE **n, **n1, **n2, *np;

crypto/lhash/lhash.c:305:9: Assignment
    303.   
    304.       if ((lh->p) >= lh->pmax) {
    305.           j = (int)lh->num_alloc_nodes * 2;
                   ^
    306.           n = OPENSSL_realloc(lh->b, (int)(sizeof(LHASH_NODE *) * j));
    307.           if (n == NULL) {

crypto/lhash/lhash.c:279:1: <Length trace>
277.   }
278.   
279. > static void expand(_LHASH *lh)
280.   {
281.       LHASH_NODE **n, **n1, **n2, *np;

crypto/lhash/lhash.c:279:1: Parameter `*lh->b`
    277.   }
    278.   
    279. > static void expand(_LHASH *lh)
    280.   {
    281.       LHASH_NODE **n, **n1, **n2, *np;

crypto/lhash/lhash.c:306:13: Call
    304.       if ((lh->p) >= lh->pmax) {
    305.           j = (int)lh->num_alloc_nodes * 2;
    306.           n = OPENSSL_realloc(lh->b, (int)(sizeof(LHASH_NODE *) * j));
                       ^
    307.           if (n == NULL) {
    308.               /* fputs("realloc error in lhash",stderr); */

crypto/mem.c:173:9: Assignment
      171.       if (num == 0) {
      172.           CRYPTO_free(str);
      173.           return NULL;
                     ^
      174.       }
      175.   

crypto/lhash/lhash.c:306:9: Assignment
    304.       if ((lh->p) >= lh->pmax) {
    305.           j = (int)lh->num_alloc_nodes * 2;
    306.           n = OPENSSL_realloc(lh->b, (int)(sizeof(LHASH_NODE *) * j));
                   ^
    307.           if (n == NULL) {
    308.               /* fputs("realloc error in lhash",stderr); */

crypto/lhash/lhash.c:314:13: Array access: Offset: [16, +oo] Size: [1, +oo] by call to `lh_insert` 
    312.           }
    313.           for (i = (int)lh->num_alloc_nodes; i < j; i++) /* 26/02/92 eay */
    314.               n[i] = NULL;        /* 02/03/92 eay */
                       ^
    315.           lh->pmax = lh->num_alloc_nodes;
    316.           lh->num_alloc_nodes = j;
