summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/stack/stack.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/stack/stack.c')
-rw-r--r--src/lib/libcrypto/stack/stack.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/lib/libcrypto/stack/stack.c b/src/lib/libcrypto/stack/stack.c
index b76a0d7271..c99941aa46 100644
--- a/src/lib/libcrypto/stack/stack.c
+++ b/src/lib/libcrypto/stack/stack.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: stack.c,v 1.20 2018/04/01 00:36:28 schwarze Exp $ */ 1/* $OpenBSD: stack.c,v 1.21 2022/11/11 19:18:55 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -79,6 +79,7 @@ int
79 79
80 return old; 80 return old;
81} 81}
82LCRYPTO_ALIAS(sk_set_cmp_func)
82 83
83_STACK * 84_STACK *
84sk_dup(_STACK *sk) 85sk_dup(_STACK *sk)
@@ -105,12 +106,14 @@ err:
105 sk_free(ret); 106 sk_free(ret);
106 return (NULL); 107 return (NULL);
107} 108}
109LCRYPTO_ALIAS(sk_dup)
108 110
109_STACK * 111_STACK *
110sk_new_null(void) 112sk_new_null(void)
111{ 113{
112 return sk_new((int (*)(const void *, const void *))0); 114 return sk_new((int (*)(const void *, const void *))0);
113} 115}
116LCRYPTO_ALIAS(sk_new_null)
114 117
115_STACK * 118_STACK *
116sk_new(int (*c)(const void *, const void *)) 119sk_new(int (*c)(const void *, const void *))
@@ -134,6 +137,7 @@ err:
134 free(ret); 137 free(ret);
135 return (NULL); 138 return (NULL);
136} 139}
140LCRYPTO_ALIAS(sk_new)
137 141
138int 142int
139sk_insert(_STACK *st, void *data, int loc) 143sk_insert(_STACK *st, void *data, int loc)
@@ -160,6 +164,7 @@ sk_insert(_STACK *st, void *data, int loc)
160 st->sorted = 0; 164 st->sorted = 0;
161 return (st->num); 165 return (st->num);
162} 166}
167LCRYPTO_ALIAS(sk_insert)
163 168
164void * 169void *
165sk_delete_ptr(_STACK *st, void *p) 170sk_delete_ptr(_STACK *st, void *p)
@@ -171,6 +176,7 @@ sk_delete_ptr(_STACK *st, void *p)
171 return (sk_delete(st, i)); 176 return (sk_delete(st, i));
172 return (NULL); 177 return (NULL);
173} 178}
179LCRYPTO_ALIAS(sk_delete_ptr)
174 180
175void * 181void *
176sk_delete(_STACK *st, int loc) 182sk_delete(_STACK *st, int loc)
@@ -188,6 +194,7 @@ sk_delete(_STACK *st, int loc)
188 st->num--; 194 st->num--;
189 return (ret); 195 return (ret);
190} 196}
197LCRYPTO_ALIAS(sk_delete)
191 198
192static int 199static int
193internal_find(_STACK *st, void *data, int ret_val_options) 200internal_find(_STACK *st, void *data, int ret_val_options)
@@ -219,24 +226,28 @@ sk_find(_STACK *st, void *data)
219{ 226{
220 return internal_find(st, data, OBJ_BSEARCH_FIRST_VALUE_ON_MATCH); 227 return internal_find(st, data, OBJ_BSEARCH_FIRST_VALUE_ON_MATCH);
221} 228}
229LCRYPTO_ALIAS(sk_find)
222 230
223int 231int
224sk_find_ex(_STACK *st, void *data) 232sk_find_ex(_STACK *st, void *data)
225{ 233{
226 return internal_find(st, data, OBJ_BSEARCH_VALUE_ON_NOMATCH); 234 return internal_find(st, data, OBJ_BSEARCH_VALUE_ON_NOMATCH);
227} 235}
236LCRYPTO_ALIAS(sk_find_ex)
228 237
229int 238int
230sk_push(_STACK *st, void *data) 239sk_push(_STACK *st, void *data)
231{ 240{
232 return (sk_insert(st, data, st->num)); 241 return (sk_insert(st, data, st->num));
233} 242}
243LCRYPTO_ALIAS(sk_push)
234 244
235int 245int
236sk_unshift(_STACK *st, void *data) 246sk_unshift(_STACK *st, void *data)
237{ 247{
238 return (sk_insert(st, data, 0)); 248 return (sk_insert(st, data, 0));
239} 249}
250LCRYPTO_ALIAS(sk_unshift)
240 251
241void * 252void *
242sk_shift(_STACK *st) 253sk_shift(_STACK *st)
@@ -247,6 +258,7 @@ sk_shift(_STACK *st)
247 return (NULL); 258 return (NULL);
248 return (sk_delete(st, 0)); 259 return (sk_delete(st, 0));
249} 260}
261LCRYPTO_ALIAS(sk_shift)
250 262
251void * 263void *
252sk_pop(_STACK *st) 264sk_pop(_STACK *st)
@@ -257,6 +269,7 @@ sk_pop(_STACK *st)
257 return (NULL); 269 return (NULL);
258 return (sk_delete(st, st->num - 1)); 270 return (sk_delete(st, st->num - 1));
259} 271}
272LCRYPTO_ALIAS(sk_pop)
260 273
261void 274void
262sk_zero(_STACK *st) 275sk_zero(_STACK *st)
@@ -268,6 +281,7 @@ sk_zero(_STACK *st)
268 memset(st->data, 0, sizeof(st->data)*st->num); 281 memset(st->data, 0, sizeof(st->data)*st->num);
269 st->num = 0; 282 st->num = 0;
270} 283}
284LCRYPTO_ALIAS(sk_zero)
271 285
272void 286void
273sk_pop_free(_STACK *st, void (*func)(void *)) 287sk_pop_free(_STACK *st, void (*func)(void *))
@@ -281,6 +295,7 @@ sk_pop_free(_STACK *st, void (*func)(void *))
281 func(st->data[i]); 295 func(st->data[i]);
282 sk_free(st); 296 sk_free(st);
283} 297}
298LCRYPTO_ALIAS(sk_pop_free)
284 299
285void 300void
286sk_free(_STACK *st) 301sk_free(_STACK *st)
@@ -290,6 +305,7 @@ sk_free(_STACK *st)
290 free(st->data); 305 free(st->data);
291 free(st); 306 free(st);
292} 307}
308LCRYPTO_ALIAS(sk_free)
293 309
294int 310int
295sk_num(const _STACK *st) 311sk_num(const _STACK *st)
@@ -298,6 +314,7 @@ sk_num(const _STACK *st)
298 return -1; 314 return -1;
299 return st->num; 315 return st->num;
300} 316}
317LCRYPTO_ALIAS(sk_num)
301 318
302void * 319void *
303sk_value(const _STACK *st, int i) 320sk_value(const _STACK *st, int i)
@@ -306,6 +323,7 @@ sk_value(const _STACK *st, int i)
306 return NULL; 323 return NULL;
307 return st->data[i]; 324 return st->data[i];
308} 325}
326LCRYPTO_ALIAS(sk_value)
309 327
310void * 328void *
311sk_set(_STACK *st, int i, void *value) 329sk_set(_STACK *st, int i, void *value)
@@ -315,6 +333,7 @@ sk_set(_STACK *st, int i, void *value)
315 st->sorted = 0; 333 st->sorted = 0;
316 return (st->data[i] = value); 334 return (st->data[i] = value);
317} 335}
336LCRYPTO_ALIAS(sk_set)
318 337
319void 338void
320sk_sort(_STACK *st) 339sk_sort(_STACK *st)
@@ -332,6 +351,7 @@ sk_sort(_STACK *st)
332 st->sorted = 1; 351 st->sorted = 1;
333 } 352 }
334} 353}
354LCRYPTO_ALIAS(sk_sort)
335 355
336int 356int
337sk_is_sorted(const _STACK *st) 357sk_is_sorted(const _STACK *st)
@@ -340,3 +360,4 @@ sk_is_sorted(const _STACK *st)
340 return 1; 360 return 1;
341 return st->sorted; 361 return st->sorted;
342} 362}
363LCRYPTO_ALIAS(sk_is_sorted)