diff options
Diffstat (limited to 'Cryptlib/OpenSSL/crypto/txt_db/txt_db.c')
| -rw-r--r-- | Cryptlib/OpenSSL/crypto/txt_db/txt_db.c | 78 |
1 files changed, 39 insertions, 39 deletions
diff --git a/Cryptlib/OpenSSL/crypto/txt_db/txt_db.c b/Cryptlib/OpenSSL/crypto/txt_db/txt_db.c index a81eaae5..f9b42ac6 100644 --- a/Cryptlib/OpenSSL/crypto/txt_db/txt_db.c +++ b/Cryptlib/OpenSSL/crypto/txt_db/txt_db.c @@ -77,7 +77,8 @@ TXT_DB *TXT_DB_read(BIO *in, int num) int i, add, n; int size = BUFSIZE; int offset = 0; - char *p, **pp, *f; + char *p, *f; + OPENSSL_STRING *pp; BUF_MEM *buf = NULL; if ((buf = BUF_MEM_new()) == NULL) @@ -85,19 +86,16 @@ TXT_DB *TXT_DB_read(BIO *in, int num) if (!BUF_MEM_grow(buf, size)) goto err; - if ((ret = (TXT_DB *)OPENSSL_malloc(sizeof(TXT_DB))) == NULL) + if ((ret = OPENSSL_malloc(sizeof(TXT_DB))) == NULL) goto err; ret->num_fields = num; ret->index = NULL; ret->qual = NULL; - if ((ret->data = sk_new_null()) == NULL) + if ((ret->data = sk_OPENSSL_PSTRING_new_null()) == NULL) goto err; - if ((ret->index = - (LHASH **)OPENSSL_malloc(sizeof(LHASH *) * num)) == NULL) + if ((ret->index = OPENSSL_malloc(sizeof(*ret->index) * num)) == NULL) goto err; - if ((ret->qual = - (int (**)(char **))OPENSSL_malloc(sizeof(int (**)(char **)) * - num)) == NULL) + if ((ret->qual = OPENSSL_malloc(sizeof(*(ret->qual)) * num)) == NULL) goto err; for (i = 0; i < num; i++) { ret->index[i] = NULL; @@ -126,7 +124,7 @@ TXT_DB *TXT_DB_read(BIO *in, int num) continue; else { buf->data[offset - 1] = '\0'; /* blat the '\n' */ - if (!(p = (char *)OPENSSL_malloc(add + offset))) + if (!(p = OPENSSL_malloc(add + offset))) goto err; offset = 0; } @@ -158,7 +156,7 @@ TXT_DB *TXT_DB_read(BIO *in, int num) } *(p++) = '\0'; if ((n != num) || (*f != '\0')) { -#if !defined(OPENSSL_NO_STDIO) && !defined(OPENSSL_SYS_WIN16) /* temporaty +#if !defined(OPENSSL_NO_STDIO) && !defined(OPENSSL_SYS_WIN16) /* temporary * fix :-( */ fprintf(stderr, "wrong number of fields on line %ld (looking for field %d, got %d, '%s' left)\n", @@ -168,8 +166,8 @@ TXT_DB *TXT_DB_read(BIO *in, int num) goto err; } pp[n] = p; - if (!sk_push(ret->data, (char *)pp)) { -#if !defined(OPENSSL_NO_STDIO) && !defined(OPENSSL_SYS_WIN16) /* temporaty + if (!sk_OPENSSL_PSTRING_push(ret->data, pp)) { +#if !defined(OPENSSL_NO_STDIO) && !defined(OPENSSL_SYS_WIN16) /* temporary * fix :-( */ fprintf(stderr, "failure in sk_push\n"); #endif @@ -187,7 +185,7 @@ TXT_DB *TXT_DB_read(BIO *in, int num) #endif if (ret != NULL) { if (ret->data != NULL) - sk_free(ret->data); + sk_OPENSSL_PSTRING_free(ret->data); if (ret->index != NULL) OPENSSL_free(ret->index); if (ret->qual != NULL) @@ -200,10 +198,11 @@ TXT_DB *TXT_DB_read(BIO *in, int num) return (ret); } -char **TXT_DB_get_by_index(TXT_DB *db, int idx, char **value) +OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, + OPENSSL_STRING *value) { - char **ret; - LHASH *lh; + OPENSSL_STRING *ret; + LHASH_OF(OPENSSL_STRING) *lh; if (idx >= db->num_fields) { db->error = DB_ERROR_INDEX_OUT_OF_RANGE; @@ -214,41 +213,42 @@ char **TXT_DB_get_by_index(TXT_DB *db, int idx, char **value) db->error = DB_ERROR_NO_INDEX; return (NULL); } - ret = (char **)lh_retrieve(lh, value); + ret = lh_OPENSSL_STRING_retrieve(lh, value); db->error = DB_ERROR_OK; return (ret); } -int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (char **), +int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *), LHASH_HASH_FN_TYPE hash, LHASH_COMP_FN_TYPE cmp) { - LHASH *idx; - char **r; + LHASH_OF(OPENSSL_STRING) *idx; + OPENSSL_STRING *r; int i, n; if (field >= db->num_fields) { db->error = DB_ERROR_INDEX_OUT_OF_RANGE; return (0); } - if ((idx = lh_new(hash, cmp)) == NULL) { + /* FIXME: we lose type checking at this point */ + if ((idx = (LHASH_OF(OPENSSL_STRING) *)lh_new(hash, cmp)) == NULL) { db->error = DB_ERROR_MALLOC; return (0); } - n = sk_num(db->data); + n = sk_OPENSSL_PSTRING_num(db->data); for (i = 0; i < n; i++) { - r = (char **)sk_value(db->data, i); + r = sk_OPENSSL_PSTRING_value(db->data, i); if ((qual != NULL) && (qual(r) == 0)) continue; - if ((r = lh_insert(idx, r)) != NULL) { + if ((r = lh_OPENSSL_STRING_insert(idx, r)) != NULL) { db->error = DB_ERROR_INDEX_CLASH; - db->arg1 = sk_find(db->data, (char *)r); + db->arg1 = sk_OPENSSL_PSTRING_find(db->data, r); db->arg2 = i; - lh_free(idx); + lh_OPENSSL_STRING_free(idx); return (0); } } if (db->index[field] != NULL) - lh_free(db->index[field]); + lh_OPENSSL_STRING_free(db->index[field]); db->index[field] = idx; db->qual[field] = qual; return (1); @@ -263,10 +263,10 @@ long TXT_DB_write(BIO *out, TXT_DB *db) if ((buf = BUF_MEM_new()) == NULL) goto err; - n = sk_num(db->data); + n = sk_OPENSSL_PSTRING_num(db->data); nn = db->num_fields; for (i = 0; i < n; i++) { - pp = (char **)sk_value(db->data, i); + pp = sk_OPENSSL_PSTRING_value(db->data, i); l = 0; for (j = 0; j < nn; j++) { @@ -302,16 +302,16 @@ long TXT_DB_write(BIO *out, TXT_DB *db) return (ret); } -int TXT_DB_insert(TXT_DB *db, char **row) +int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *row) { int i; - char **r; + OPENSSL_STRING *r; for (i = 0; i < db->num_fields; i++) { if (db->index[i] != NULL) { if ((db->qual[i] != NULL) && (db->qual[i] (row) == 0)) continue; - r = (char **)lh_retrieve(db->index[i], row); + r = lh_OPENSSL_STRING_retrieve(db->index[i], row); if (r != NULL) { db->error = DB_ERROR_INDEX_CLASH; db->arg1 = i; @@ -321,7 +321,7 @@ int TXT_DB_insert(TXT_DB *db, char **row) } } /* We have passed the index checks, now just append and insert */ - if (!sk_push(db->data, (char *)row)) { + if (!sk_OPENSSL_PSTRING_push(db->data, row)) { db->error = DB_ERROR_MALLOC; goto err; } @@ -330,7 +330,7 @@ int TXT_DB_insert(TXT_DB *db, char **row) if (db->index[i] != NULL) { if ((db->qual[i] != NULL) && (db->qual[i] (row) == 0)) continue; - lh_insert(db->index[i], row); + (void)lh_OPENSSL_STRING_insert(db->index[i], row); } } return (1); @@ -349,18 +349,18 @@ void TXT_DB_free(TXT_DB *db) if (db->index != NULL) { for (i = db->num_fields - 1; i >= 0; i--) if (db->index[i] != NULL) - lh_free(db->index[i]); + lh_OPENSSL_STRING_free(db->index[i]); OPENSSL_free(db->index); } if (db->qual != NULL) OPENSSL_free(db->qual); if (db->data != NULL) { - for (i = sk_num(db->data) - 1; i >= 0; i--) { + for (i = sk_OPENSSL_PSTRING_num(db->data) - 1; i >= 0; i--) { /* * check if any 'fields' have been allocated from outside of the * initial block */ - p = (char **)sk_value(db->data, i); + p = sk_OPENSSL_PSTRING_value(db->data, i); max = p[db->num_fields]; /* last address */ if (max == NULL) { /* new row */ for (n = 0; n < db->num_fields; n++) @@ -373,9 +373,9 @@ void TXT_DB_free(TXT_DB *db) OPENSSL_free(p[n]); } } - OPENSSL_free(sk_value(db->data, i)); + OPENSSL_free(sk_OPENSSL_PSTRING_value(db->data, i)); } - sk_free(db->data); + sk_OPENSSL_PSTRING_free(db->data); } OPENSSL_free(db); } |
