diff options
Diffstat (limited to 'src/lib/libcrypto/stack/stack.c')
-rw-r--r-- | src/lib/libcrypto/stack/stack.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/lib/libcrypto/stack/stack.c b/src/lib/libcrypto/stack/stack.c index 02857f0446..2496f28a8c 100644 --- a/src/lib/libcrypto/stack/stack.c +++ b/src/lib/libcrypto/stack/stack.c | |||
@@ -106,6 +106,8 @@ STACK *sk_dup(STACK *sk) | |||
106 | ret->comp=sk->comp; | 106 | ret->comp=sk->comp; |
107 | return(ret); | 107 | return(ret); |
108 | err: | 108 | err: |
109 | if(ret) | ||
110 | sk_free(ret); | ||
109 | return(NULL); | 111 | return(NULL); |
110 | } | 112 | } |
111 | 113 | ||
@@ -120,9 +122,9 @@ STACK *sk_new(int (*c)(const char * const *, const char * const *)) | |||
120 | int i; | 122 | int i; |
121 | 123 | ||
122 | if ((ret=(STACK *)OPENSSL_malloc(sizeof(STACK))) == NULL) | 124 | if ((ret=(STACK *)OPENSSL_malloc(sizeof(STACK))) == NULL) |
123 | goto err0; | 125 | goto err; |
124 | if ((ret->data=(char **)OPENSSL_malloc(sizeof(char *)*MIN_NODES)) == NULL) | 126 | if ((ret->data=(char **)OPENSSL_malloc(sizeof(char *)*MIN_NODES)) == NULL) |
125 | goto err1; | 127 | goto err; |
126 | for (i=0; i<MIN_NODES; i++) | 128 | for (i=0; i<MIN_NODES; i++) |
127 | ret->data[i]=NULL; | 129 | ret->data[i]=NULL; |
128 | ret->comp=c; | 130 | ret->comp=c; |
@@ -130,9 +132,9 @@ STACK *sk_new(int (*c)(const char * const *, const char * const *)) | |||
130 | ret->num=0; | 132 | ret->num=0; |
131 | ret->sorted=0; | 133 | ret->sorted=0; |
132 | return(ret); | 134 | return(ret); |
133 | err1: | 135 | err: |
134 | OPENSSL_free(ret); | 136 | if(ret) |
135 | err0: | 137 | OPENSSL_free(ret); |
136 | return(NULL); | 138 | return(NULL); |
137 | } | 139 | } |
138 | 140 | ||
@@ -316,7 +318,7 @@ char *sk_set(STACK *st, int i, char *value) | |||
316 | 318 | ||
317 | void sk_sort(STACK *st) | 319 | void sk_sort(STACK *st) |
318 | { | 320 | { |
319 | if (!st->sorted) | 321 | if (st && !st->sorted) |
320 | { | 322 | { |
321 | int (*comp_func)(const void *,const void *); | 323 | int (*comp_func)(const void *,const void *); |
322 | 324 | ||