crypto/err/err.c:553: error: BUFFER_OVERRUN_L3
  Offset: [-1, +oo] Size: [0, +oo] by call to `lh_delete`.
Showing all 14 steps of the trace


crypto/err/err.c:548:12: Call
546.   
547.       CRYPTO_w_lock(CRYPTO_LOCK_ERR);
548.       hash = get_hash(0, 0);
                  ^
549.       if (hash) {
550.           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:125:5: Assignment
    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;
    127.       ret->down_load = DOWN_LOAD;

crypto/err/err.c:553:19: Call
551.               if (lib)
552.                   str->error |= ERR_PACK(lib, 0, 0);
553.               (void)lh_ERR_STRING_DATA_delete(hash, str);
                         ^
554.           }
555.       }

crypto/lhash/lhash.c:189:1: Parameter `*lh->b`
  187.   }
  188.   
  189. > void *lh_delete(_LHASH *lh, const void *data)
  190.   {
  191.       unsigned long hash;

crypto/err/err.c:553:19: Call
551.               if (lib)
552.                   str->error |= ERR_PACK(lib, 0, 0);
553.               (void)lh_ERR_STRING_DATA_delete(hash, str);
                         ^
554.           }
555.       }

crypto/lhash/lhash.c:189:1: Parameter `*lh->b`
  187.   }
  188.   
  189. > void *lh_delete(_LHASH *lh, const void *data)
  190.   {
  191.       unsigned long hash;

crypto/lhash/lhash.c:212:9: Call
  210.       if ((lh->num_nodes > MIN_NODES) &&
  211.           (lh->down_load >= (lh->num_items * LH_LOAD_MULT / lh->num_nodes)))
  212.           contract(lh);
                 ^
  213.   
  214.       return (ret);

crypto/lhash/lhash.c:323:1: <Offset trace>
321.   }
322.   
323. > static void contract(_LHASH *lh)
324.   {
325.       LHASH_NODE **n, *n1, *np;

crypto/lhash/lhash.c:323:1: Parameter `lh->p`
    321.   }
    322.   
    323. > static void contract(_LHASH *lh)
    324.   {
    325.       LHASH_NODE **n, *n1, *np;

crypto/lhash/lhash.c:343:9: Assignment
    341.           lh->b = n;
    342.       } else
    343.           lh->p--;
                   ^
    344.   
    345.       lh->num_nodes--;

crypto/lhash/lhash.c:323:1: <Length trace>
321.   }
322.   
323. > static void contract(_LHASH *lh)
324.   {
325.       LHASH_NODE **n, *n1, *np;

crypto/lhash/lhash.c:323:1: Parameter `*lh->b`
    321.   }
    322.   
    323. > static void contract(_LHASH *lh)
    324.   {
    325.       LHASH_NODE **n, *n1, *np;

crypto/lhash/lhash.c:348:10: Array access: Offset: [-1, +oo] Size: [0, +oo] by call to `lh_delete` 
    346.       lh->num_contracts++;
    347.   
    348.       n1 = lh->b[(int)lh->p];
                    ^
    349.       if (n1 == NULL)
    350.           lh->b[(int)lh->p] = np;
