Commit 0a1d3a81 authored by mrpre's avatar mrpre Committed by Rich Salz
Browse files

add return value for expand

parent a66069db
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
#define UP_LOAD         (2*LH_LOAD_MULT) /* load times 256 (default 2) */
#define DOWN_LOAD       (LH_LOAD_MULT) /* load times 256 (default 1) */

static void expand(OPENSSL_LHASH *lh);
static int expand(OPENSSL_LHASH *lh);
static void contract(OPENSSL_LHASH *lh);
static OPENSSL_LH_NODE **getrn(OPENSSL_LHASH *lh, const void *data, unsigned long *rhash);

@@ -72,10 +72,16 @@ void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data)
    unsigned long hash;
    OPENSSL_LH_NODE *nn, **rn;
    void *ret;
    int val = 0;
    
    lh->error = 0;
    if (lh->up_load <= (lh->num_items * LH_LOAD_MULT / lh->num_nodes))
        expand(lh);
        val = expand(lh);
    
    if(val){
        lh->error++;
        return (NULL);
    }
        
    rn = getrn(lh, data, &hash);

@@ -184,7 +190,7 @@ void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void
    doall_util_fn(lh, 1, (OPENSSL_LH_DOALL_FUNC)0, func, arg);
}

static void expand(OPENSSL_LHASH *lh)
static int expand(OPENSSL_LHASH *lh)
{
    OPENSSL_LH_NODE **n, **n1, **n2, *np;
    unsigned int p, i, j;
@@ -216,7 +222,7 @@ static void expand(OPENSSL_LHASH *lh)
            /* fputs("realloc error in lhash",stderr); */
            lh->error++;
            lh->p = 0;
            return;
            return -1;
        }
        for (i = (int)lh->num_alloc_nodes; i < j; i++) /* 26/02/92 eay */
            n[i] = NULL;        /* 02/03/92 eay */
@@ -226,6 +232,7 @@ static void expand(OPENSSL_LHASH *lh)
        lh->p = 0;
        lh->b = n;
    }
    return 0;
}

static void contract(OPENSSL_LHASH *lh)