diff options
Diffstat (limited to 'src/lib/libcrypto/lhash/lhash.c')
-rw-r--r-- | src/lib/libcrypto/lhash/lhash.c | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/src/lib/libcrypto/lhash/lhash.c b/src/lib/libcrypto/lhash/lhash.c index 04ea80203c..47f748081b 100644 --- a/src/lib/libcrypto/lhash/lhash.c +++ b/src/lib/libcrypto/lhash/lhash.c | |||
@@ -107,18 +107,18 @@ const char lh_version[]="lhash" OPENSSL_VERSION_PTEXT; | |||
107 | #define UP_LOAD (2*LH_LOAD_MULT) /* load times 256 (default 2) */ | 107 | #define UP_LOAD (2*LH_LOAD_MULT) /* load times 256 (default 2) */ |
108 | #define DOWN_LOAD (LH_LOAD_MULT) /* load times 256 (default 1) */ | 108 | #define DOWN_LOAD (LH_LOAD_MULT) /* load times 256 (default 1) */ |
109 | 109 | ||
110 | static void expand(LHASH *lh); | 110 | static void expand(_LHASH *lh); |
111 | static void contract(LHASH *lh); | 111 | static void contract(_LHASH *lh); |
112 | static LHASH_NODE **getrn(LHASH *lh, const void *data, unsigned long *rhash); | 112 | static LHASH_NODE **getrn(_LHASH *lh, const void *data, unsigned long *rhash); |
113 | 113 | ||
114 | LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c) | 114 | _LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c) |
115 | { | 115 | { |
116 | LHASH *ret; | 116 | _LHASH *ret; |
117 | int i; | 117 | int i; |
118 | 118 | ||
119 | if ((ret=(LHASH *)OPENSSL_malloc(sizeof(LHASH))) == NULL) | 119 | if ((ret=OPENSSL_malloc(sizeof(_LHASH))) == NULL) |
120 | goto err0; | 120 | goto err0; |
121 | if ((ret->b=(LHASH_NODE **)OPENSSL_malloc(sizeof(LHASH_NODE *)*MIN_NODES)) == NULL) | 121 | if ((ret->b=OPENSSL_malloc(sizeof(LHASH_NODE *)*MIN_NODES)) == NULL) |
122 | goto err1; | 122 | goto err1; |
123 | for (i=0; i<MIN_NODES; i++) | 123 | for (i=0; i<MIN_NODES; i++) |
124 | ret->b[i]=NULL; | 124 | ret->b[i]=NULL; |
@@ -154,7 +154,7 @@ err0: | |||
154 | return(NULL); | 154 | return(NULL); |
155 | } | 155 | } |
156 | 156 | ||
157 | void lh_free(LHASH *lh) | 157 | void lh_free(_LHASH *lh) |
158 | { | 158 | { |
159 | unsigned int i; | 159 | unsigned int i; |
160 | LHASH_NODE *n,*nn; | 160 | LHASH_NODE *n,*nn; |
@@ -176,7 +176,7 @@ void lh_free(LHASH *lh) | |||
176 | OPENSSL_free(lh); | 176 | OPENSSL_free(lh); |
177 | } | 177 | } |
178 | 178 | ||
179 | void *lh_insert(LHASH *lh, void *data) | 179 | void *lh_insert(_LHASH *lh, void *data) |
180 | { | 180 | { |
181 | unsigned long hash; | 181 | unsigned long hash; |
182 | LHASH_NODE *nn,**rn; | 182 | LHASH_NODE *nn,**rn; |
@@ -214,7 +214,7 @@ void *lh_insert(LHASH *lh, void *data) | |||
214 | return(ret); | 214 | return(ret); |
215 | } | 215 | } |
216 | 216 | ||
217 | void *lh_delete(LHASH *lh, const void *data) | 217 | void *lh_delete(_LHASH *lh, const void *data) |
218 | { | 218 | { |
219 | unsigned long hash; | 219 | unsigned long hash; |
220 | LHASH_NODE *nn,**rn; | 220 | LHASH_NODE *nn,**rn; |
@@ -245,7 +245,7 @@ void *lh_delete(LHASH *lh, const void *data) | |||
245 | return(ret); | 245 | return(ret); |
246 | } | 246 | } |
247 | 247 | ||
248 | void *lh_retrieve(LHASH *lh, const void *data) | 248 | void *lh_retrieve(_LHASH *lh, const void *data) |
249 | { | 249 | { |
250 | unsigned long hash; | 250 | unsigned long hash; |
251 | LHASH_NODE **rn; | 251 | LHASH_NODE **rn; |
@@ -267,12 +267,15 @@ void *lh_retrieve(LHASH *lh, const void *data) | |||
267 | return(ret); | 267 | return(ret); |
268 | } | 268 | } |
269 | 269 | ||
270 | static void doall_util_fn(LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func, | 270 | static void doall_util_fn(_LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func, |
271 | LHASH_DOALL_ARG_FN_TYPE func_arg, void *arg) | 271 | LHASH_DOALL_ARG_FN_TYPE func_arg, void *arg) |
272 | { | 272 | { |
273 | int i; | 273 | int i; |
274 | LHASH_NODE *a,*n; | 274 | LHASH_NODE *a,*n; |
275 | 275 | ||
276 | if (lh == NULL) | ||
277 | return; | ||
278 | |||
276 | /* reverse the order so we search from 'top to bottom' | 279 | /* reverse the order so we search from 'top to bottom' |
277 | * We were having memory leaks otherwise */ | 280 | * We were having memory leaks otherwise */ |
278 | for (i=lh->num_nodes-1; i>=0; i--) | 281 | for (i=lh->num_nodes-1; i>=0; i--) |
@@ -282,6 +285,8 @@ static void doall_util_fn(LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func, | |||
282 | { | 285 | { |
283 | /* 28/05/91 - eay - n added so items can be deleted | 286 | /* 28/05/91 - eay - n added so items can be deleted |
284 | * via lh_doall */ | 287 | * via lh_doall */ |
288 | /* 22/05/08 - ben - eh? since a is not passed, | ||
289 | * this should not be needed */ | ||
285 | n=a->next; | 290 | n=a->next; |
286 | if(use_arg) | 291 | if(use_arg) |
287 | func_arg(a->data,arg); | 292 | func_arg(a->data,arg); |
@@ -292,17 +297,17 @@ static void doall_util_fn(LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func, | |||
292 | } | 297 | } |
293 | } | 298 | } |
294 | 299 | ||
295 | void lh_doall(LHASH *lh, LHASH_DOALL_FN_TYPE func) | 300 | void lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func) |
296 | { | 301 | { |
297 | doall_util_fn(lh, 0, func, (LHASH_DOALL_ARG_FN_TYPE)0, NULL); | 302 | doall_util_fn(lh, 0, func, (LHASH_DOALL_ARG_FN_TYPE)0, NULL); |
298 | } | 303 | } |
299 | 304 | ||
300 | void lh_doall_arg(LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg) | 305 | void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg) |
301 | { | 306 | { |
302 | doall_util_fn(lh, 1, (LHASH_DOALL_FN_TYPE)0, func, arg); | 307 | doall_util_fn(lh, 1, (LHASH_DOALL_FN_TYPE)0, func, arg); |
303 | } | 308 | } |
304 | 309 | ||
305 | static void expand(LHASH *lh) | 310 | static void expand(_LHASH *lh) |
306 | { | 311 | { |
307 | LHASH_NODE **n,**n1,**n2,*np; | 312 | LHASH_NODE **n,**n1,**n2,*np; |
308 | unsigned int p,i,j; | 313 | unsigned int p,i,j; |
@@ -358,7 +363,7 @@ static void expand(LHASH *lh) | |||
358 | } | 363 | } |
359 | } | 364 | } |
360 | 365 | ||
361 | static void contract(LHASH *lh) | 366 | static void contract(_LHASH *lh) |
362 | { | 367 | { |
363 | LHASH_NODE **n,*n1,*np; | 368 | LHASH_NODE **n,*n1,*np; |
364 | 369 | ||
@@ -397,7 +402,7 @@ static void contract(LHASH *lh) | |||
397 | } | 402 | } |
398 | } | 403 | } |
399 | 404 | ||
400 | static LHASH_NODE **getrn(LHASH *lh, const void *data, unsigned long *rhash) | 405 | static LHASH_NODE **getrn(_LHASH *lh, const void *data, unsigned long *rhash) |
401 | { | 406 | { |
402 | LHASH_NODE **ret,*n1; | 407 | LHASH_NODE **ret,*n1; |
403 | unsigned long hash,nn; | 408 | unsigned long hash,nn; |
@@ -464,7 +469,7 @@ unsigned long lh_strhash(const char *c) | |||
464 | return((ret>>16)^ret); | 469 | return((ret>>16)^ret); |
465 | } | 470 | } |
466 | 471 | ||
467 | unsigned long lh_num_items(const LHASH *lh) | 472 | unsigned long lh_num_items(const _LHASH *lh) |
468 | { | 473 | { |
469 | return lh ? lh->num_items : 0; | 474 | return lh ? lh->num_items : 0; |
470 | } | 475 | } |