include/openssl/conf.h:32: error: BUFFER_OVERRUN_L3
  Offset: [-1, +oo] Size: [1, +oo] by call to `OPENSSL_LH_delete`.
Showing all 10 steps of the trace


include/openssl/conf.h:32:1: Parameter `lh->pmax`
30.   
31.   DEFINE_STACK_OF(CONF_VALUE)
32. > DEFINE_LHASH_OF(CONF_VALUE);
33.   
34.   struct conf_st;

include/openssl/conf.h:32:1: Call
30.   
31.   DEFINE_STACK_OF(CONF_VALUE)
32. > DEFINE_LHASH_OF(CONF_VALUE);
33.   
34.   struct conf_st;

crypto/lhash/lhash.c:103:1: Parameter `lh->pmax`
  101.   }
  102.   
  103. > void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)
  104.   {
  105.       unsigned long hash;

crypto/lhash/lhash.c:126:9: Call
  124.       if ((lh->num_nodes > MIN_NODES) &&
  125.           (lh->down_load >= (lh->num_items * LH_LOAD_MULT / lh->num_nodes)))
  126.           contract(lh);
                 ^
  127.   
  128.       return (ret);

crypto/lhash/lhash.c:231:1: <Offset trace>
229.   }
230.   
231. > static void contract(OPENSSL_LHASH *lh)
232.   {
233.       OPENSSL_LH_NODE **n, *n1, *np;

crypto/lhash/lhash.c:231:1: Parameter `lh->p`
    229.   }
    230.   
    231. > static void contract(OPENSSL_LHASH *lh)
    232.   {
    233.       OPENSSL_LH_NODE **n, *n1, *np;

crypto/lhash/lhash.c:251:9: Assignment
    249.           lh->b = n;
    250.       } else
    251.           lh->p--;
                   ^
    252.   
    253.       lh->num_nodes--;

crypto/lhash/lhash.c:231:1: <Length trace>
229.   }
230.   
231. > static void contract(OPENSSL_LHASH *lh)
232.   {
233.       OPENSSL_LH_NODE **n, *n1, *np;

crypto/lhash/lhash.c:231:1: Parameter `*lh->b`
    229.   }
    230.   
    231. > static void contract(OPENSSL_LHASH *lh)
    232.   {
    233.       OPENSSL_LH_NODE **n, *n1, *np;

crypto/lhash/lhash.c:256:10: Array access: Offset: [-1, +oo] Size: [1, +oo] by call to `OPENSSL_LH_delete` 
    254.       lh->num_contracts++;
    255.   
    256.       n1 = lh->b[(int)lh->p];
                    ^
    257.       if (n1 == NULL)
    258.           lh->b[(int)lh->p] = np;
