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.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/lib/libcrypto/stack/stack.c b/src/lib/libcrypto/stack/stack.c
index 2496f28a8c..c7173eb6ab 100644
--- a/src/lib/libcrypto/stack/stack.c
+++ b/src/lib/libcrypto/stack/stack.c
@@ -191,8 +191,7 @@ char *sk_delete(STACK *st, int loc)
191 char *ret; 191 char *ret;
192 int i,j; 192 int i,j;
193 193
194 if ((st == NULL) || (st->num == 0) || (loc < 0) 194 if(!st || (loc < 0) || (loc >= st->num)) return NULL;
195 || (loc >= st->num)) return(NULL);
196 195
197 ret=st->data[loc]; 196 ret=st->data[loc];
198 if (loc != st->num-1) 197 if (loc != st->num-1)
@@ -306,13 +305,13 @@ int sk_num(const STACK *st)
306 305
307char *sk_value(const STACK *st, int i) 306char *sk_value(const STACK *st, int i)
308{ 307{
309 if(st == NULL) return NULL; 308 if(!st || (i < 0) || (i >= st->num)) return NULL;
310 return st->data[i]; 309 return st->data[i];
311} 310}
312 311
313char *sk_set(STACK *st, int i, char *value) 312char *sk_set(STACK *st, int i, char *value)
314{ 313{
315 if(st == NULL) return NULL; 314 if(!st || (i < 0) || (i >= st->num)) return NULL;
316 return (st->data[i] = value); 315 return (st->data[i] = value);
317} 316}
318 317
@@ -332,3 +331,10 @@ void sk_sort(STACK *st)
332 st->sorted=1; 331 st->sorted=1;
333 } 332 }
334 } 333 }
334
335int sk_is_sorted(const STACK *st)
336 {
337 if (!st)
338 return 1;
339 return st->sorted;
340 }