diff options
Diffstat (limited to '')
-rw-r--r-- | src/lib/libcrypto/txt_db/txt_db.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/lib/libcrypto/txt_db/txt_db.c b/src/lib/libcrypto/txt_db/txt_db.c index 58b300b00b..3ed5f72ee9 100644 --- a/src/lib/libcrypto/txt_db/txt_db.c +++ b/src/lib/libcrypto/txt_db/txt_db.c | |||
@@ -66,7 +66,7 @@ | |||
66 | #undef BUFSIZE | 66 | #undef BUFSIZE |
67 | #define BUFSIZE 512 | 67 | #define BUFSIZE 512 |
68 | 68 | ||
69 | const char *TXT_DB_version="TXT_DB" OPENSSL_VERSION_PTEXT; | 69 | const char TXT_DB_version[]="TXT_DB" OPENSSL_VERSION_PTEXT; |
70 | 70 | ||
71 | TXT_DB *TXT_DB_read(BIO *in, int num) | 71 | TXT_DB *TXT_DB_read(BIO *in, int num) |
72 | { | 72 | { |
@@ -92,7 +92,7 @@ TXT_DB *TXT_DB_read(BIO *in, int num) | |||
92 | goto err; | 92 | goto err; |
93 | if ((ret->index=(LHASH **)OPENSSL_malloc(sizeof(LHASH *)*num)) == NULL) | 93 | if ((ret->index=(LHASH **)OPENSSL_malloc(sizeof(LHASH *)*num)) == NULL) |
94 | goto err; | 94 | goto err; |
95 | if ((ret->qual=(int (**)())OPENSSL_malloc(sizeof(int (**)())*num)) == NULL) | 95 | if ((ret->qual=(int (**)(char **))OPENSSL_malloc(sizeof(int (**)(char **))*num)) == NULL) |
96 | goto err; | 96 | goto err; |
97 | for (i=0; i<num; i++) | 97 | for (i=0; i<num; i++) |
98 | { | 98 | { |
@@ -179,10 +179,13 @@ err: | |||
179 | #if !defined(OPENSSL_NO_STDIO) && !defined(OPENSSL_SYS_WIN16) | 179 | #if !defined(OPENSSL_NO_STDIO) && !defined(OPENSSL_SYS_WIN16) |
180 | if (er == 1) fprintf(stderr,"OPENSSL_malloc failure\n"); | 180 | if (er == 1) fprintf(stderr,"OPENSSL_malloc failure\n"); |
181 | #endif | 181 | #endif |
182 | if (ret->data != NULL) sk_free(ret->data); | 182 | if (ret != NULL) |
183 | if (ret->index != NULL) OPENSSL_free(ret->index); | 183 | { |
184 | if (ret->qual != NULL) OPENSSL_free(ret->qual); | 184 | if (ret->data != NULL) sk_free(ret->data); |
185 | if (ret != NULL) OPENSSL_free(ret); | 185 | if (ret->index != NULL) OPENSSL_free(ret->index); |
186 | if (ret->qual != NULL) OPENSSL_free(ret->qual); | ||
187 | if (ret != NULL) OPENSSL_free(ret); | ||
188 | } | ||
186 | return(NULL); | 189 | return(NULL); |
187 | } | 190 | } |
188 | else | 191 | else |
@@ -210,11 +213,11 @@ char **TXT_DB_get_by_index(TXT_DB *db, int idx, char **value) | |||
210 | return(ret); | 213 | return(ret); |
211 | } | 214 | } |
212 | 215 | ||
213 | int TXT_DB_create_index(TXT_DB *db, int field, int (*qual)(), | 216 | int TXT_DB_create_index(TXT_DB *db, int field, int (*qual)(char **), |
214 | LHASH_HASH_FN_TYPE hash, LHASH_COMP_FN_TYPE cmp) | 217 | LHASH_HASH_FN_TYPE hash, LHASH_COMP_FN_TYPE cmp) |
215 | { | 218 | { |
216 | LHASH *idx; | 219 | LHASH *idx; |
217 | char *r; | 220 | char **r; |
218 | int i,n; | 221 | int i,n; |
219 | 222 | ||
220 | if (field >= db->num_fields) | 223 | if (field >= db->num_fields) |
@@ -230,12 +233,12 @@ int TXT_DB_create_index(TXT_DB *db, int field, int (*qual)(), | |||
230 | n=sk_num(db->data); | 233 | n=sk_num(db->data); |
231 | for (i=0; i<n; i++) | 234 | for (i=0; i<n; i++) |
232 | { | 235 | { |
233 | r=(char *)sk_value(db->data,i); | 236 | r=(char **)sk_value(db->data,i); |
234 | if ((qual != NULL) && (qual(r) == 0)) continue; | 237 | if ((qual != NULL) && (qual(r) == 0)) continue; |
235 | if ((r=lh_insert(idx,r)) != NULL) | 238 | if ((r=lh_insert(idx,r)) != NULL) |
236 | { | 239 | { |
237 | db->error=DB_ERROR_INDEX_CLASH; | 240 | db->error=DB_ERROR_INDEX_CLASH; |
238 | db->arg1=sk_find(db->data,r); | 241 | db->arg1=sk_find(db->data,(char *)r); |
239 | db->arg2=i; | 242 | db->arg2=i; |
240 | lh_free(idx); | 243 | lh_free(idx); |
241 | return(0); | 244 | return(0); |