diff options
| author | beck <> | 2002-05-15 02:29:21 +0000 |
|---|---|---|
| committer | beck <> | 2002-05-15 02:29:21 +0000 |
| commit | b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9 (patch) | |
| tree | fa27cf82a1250b64ed3bf5f4a18c7354d470bbcc /src/lib/libcrypto/stack/stack.c | |
| parent | e471e1ea98d673597b182ea85f29e30c97cd08b5 (diff) | |
| download | openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.tar.gz openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.tar.bz2 openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.zip | |
OpenSSL 0.9.7 stable 2002 05 08 merge
Diffstat (limited to '')
| -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 | ||
