sync with OpenBSD -current
This commit is contained in:
parent
329362e59c
commit
22b00c65ca
13 changed files with 259 additions and 275 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: bio_lib.c,v 1.48 2023/08/07 10:58:56 tb Exp $ */
|
||||
/* $OpenBSD: bio_lib.c,v 1.51 2024/02/17 14:29:07 jsing Exp $ */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
|
@ -134,82 +134,72 @@ LCRYPTO_ALIAS(BIO_get_new_index);
|
|||
BIO *
|
||||
BIO_new(const BIO_METHOD *method)
|
||||
{
|
||||
BIO *ret = NULL;
|
||||
BIO *bio = NULL;
|
||||
|
||||
/* XXX calloc */
|
||||
ret = malloc(sizeof(BIO));
|
||||
if (ret == NULL) {
|
||||
if ((bio = calloc(1, sizeof(BIO))) == NULL) {
|
||||
BIOerror(ERR_R_MALLOC_FAILURE);
|
||||
return (NULL);
|
||||
return NULL;
|
||||
}
|
||||
if (!BIO_set(ret, method)) {
|
||||
free(ret);
|
||||
ret = NULL;
|
||||
|
||||
bio->method = method;
|
||||
bio->shutdown = 1;
|
||||
bio->references = 1;
|
||||
|
||||
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_BIO, bio, &bio->ex_data);
|
||||
|
||||
if (method->create != NULL) {
|
||||
if (!method->create(bio)) {
|
||||
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_BIO, bio,
|
||||
&bio->ex_data);
|
||||
free(bio);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
return (ret);
|
||||
|
||||
return bio;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_new);
|
||||
|
||||
int
|
||||
BIO_set(BIO *bio, const BIO_METHOD *method)
|
||||
{
|
||||
bio->method = method;
|
||||
bio->callback = NULL;
|
||||
bio->callback_ex = NULL;
|
||||
bio->cb_arg = NULL;
|
||||
bio->init = 0;
|
||||
bio->shutdown = 1;
|
||||
bio->flags = 0;
|
||||
bio->retry_reason = 0;
|
||||
bio->num = 0;
|
||||
bio->ptr = NULL;
|
||||
bio->prev_bio = NULL;
|
||||
bio->next_bio = NULL;
|
||||
bio->references = 1;
|
||||
bio->num_read = 0L;
|
||||
bio->num_write = 0L;
|
||||
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_BIO, bio, &bio->ex_data);
|
||||
if (method->create != NULL) {
|
||||
if (!method->create(bio)) {
|
||||
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_BIO, bio,
|
||||
&bio->ex_data);
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
return (1);
|
||||
BIOerror(ERR_R_DISABLED);
|
||||
return 0;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_set);
|
||||
|
||||
int
|
||||
BIO_free(BIO *a)
|
||||
BIO_free(BIO *bio)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (a == NULL)
|
||||
return (0);
|
||||
if (bio == NULL)
|
||||
return 0;
|
||||
|
||||
if (CRYPTO_add(&a->references, -1, CRYPTO_LOCK_BIO) > 0)
|
||||
return (1);
|
||||
if (CRYPTO_add(&bio->references, -1, CRYPTO_LOCK_BIO) > 0)
|
||||
return 1;
|
||||
|
||||
if (a->callback != NULL || a->callback_ex != NULL) {
|
||||
if ((ret = (int)bio_call_callback(a, BIO_CB_FREE, NULL, 0, 0,
|
||||
if (bio->callback != NULL || bio->callback_ex != NULL) {
|
||||
if ((ret = (int)bio_call_callback(bio, BIO_CB_FREE, NULL, 0, 0,
|
||||
0L, 1L, NULL)) <= 0)
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_BIO, a, &a->ex_data);
|
||||
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_BIO, bio, &bio->ex_data);
|
||||
|
||||
if (a->method != NULL && a->method->destroy != NULL)
|
||||
a->method->destroy(a);
|
||||
free(a);
|
||||
return (1);
|
||||
if (bio->method != NULL && bio->method->destroy != NULL)
|
||||
bio->method->destroy(bio);
|
||||
|
||||
free(bio);
|
||||
|
||||
return 1;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_free);
|
||||
|
||||
void
|
||||
BIO_vfree(BIO *a)
|
||||
BIO_vfree(BIO *bio)
|
||||
{
|
||||
BIO_free(a);
|
||||
BIO_free(bio);
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_vfree);
|
||||
|
||||
|
@ -222,121 +212,121 @@ BIO_up_ref(BIO *bio)
|
|||
LCRYPTO_ALIAS(BIO_up_ref);
|
||||
|
||||
void *
|
||||
BIO_get_data(BIO *a)
|
||||
BIO_get_data(BIO *bio)
|
||||
{
|
||||
return (a->ptr);
|
||||
return bio->ptr;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_get_data);
|
||||
|
||||
void
|
||||
BIO_set_data(BIO *a, void *ptr)
|
||||
BIO_set_data(BIO *bio, void *ptr)
|
||||
{
|
||||
a->ptr = ptr;
|
||||
bio->ptr = ptr;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_set_data);
|
||||
|
||||
int
|
||||
BIO_get_init(BIO *a)
|
||||
BIO_get_init(BIO *bio)
|
||||
{
|
||||
return a->init;
|
||||
return bio->init;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_get_init);
|
||||
|
||||
void
|
||||
BIO_set_init(BIO *a, int init)
|
||||
BIO_set_init(BIO *bio, int init)
|
||||
{
|
||||
a->init = init;
|
||||
bio->init = init;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_set_init);
|
||||
|
||||
int
|
||||
BIO_get_shutdown(BIO *a)
|
||||
BIO_get_shutdown(BIO *bio)
|
||||
{
|
||||
return (a->shutdown);
|
||||
return bio->shutdown;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_get_shutdown);
|
||||
|
||||
void
|
||||
BIO_set_shutdown(BIO *a, int shut)
|
||||
BIO_set_shutdown(BIO *bio, int shut)
|
||||
{
|
||||
a->shutdown = shut;
|
||||
bio->shutdown = shut;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_set_shutdown);
|
||||
|
||||
void
|
||||
BIO_clear_flags(BIO *b, int flags)
|
||||
BIO_clear_flags(BIO *bio, int flags)
|
||||
{
|
||||
b->flags &= ~flags;
|
||||
bio->flags &= ~flags;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_clear_flags);
|
||||
|
||||
int
|
||||
BIO_test_flags(const BIO *b, int flags)
|
||||
BIO_test_flags(const BIO *bio, int flags)
|
||||
{
|
||||
return (b->flags & flags);
|
||||
return (bio->flags & flags);
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_test_flags);
|
||||
|
||||
void
|
||||
BIO_set_flags(BIO *b, int flags)
|
||||
BIO_set_flags(BIO *bio, int flags)
|
||||
{
|
||||
b->flags |= flags;
|
||||
bio->flags |= flags;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_set_flags);
|
||||
|
||||
BIO_callback_fn
|
||||
BIO_get_callback(const BIO *b)
|
||||
BIO_get_callback(const BIO *bio)
|
||||
{
|
||||
return b->callback;
|
||||
return bio->callback;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_get_callback);
|
||||
|
||||
void
|
||||
BIO_set_callback(BIO *b, BIO_callback_fn cb)
|
||||
BIO_set_callback(BIO *bio, BIO_callback_fn cb)
|
||||
{
|
||||
b->callback = cb;
|
||||
bio->callback = cb;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_set_callback);
|
||||
|
||||
BIO_callback_fn_ex
|
||||
BIO_get_callback_ex(const BIO *b)
|
||||
BIO_get_callback_ex(const BIO *bio)
|
||||
{
|
||||
return b->callback_ex;
|
||||
return bio->callback_ex;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_get_callback_ex);
|
||||
|
||||
void
|
||||
BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex cb)
|
||||
BIO_set_callback_ex(BIO *bio, BIO_callback_fn_ex cb)
|
||||
{
|
||||
b->callback_ex = cb;
|
||||
bio->callback_ex = cb;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_set_callback_ex);
|
||||
|
||||
void
|
||||
BIO_set_callback_arg(BIO *b, char *arg)
|
||||
BIO_set_callback_arg(BIO *bio, char *arg)
|
||||
{
|
||||
b->cb_arg = arg;
|
||||
bio->cb_arg = arg;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_set_callback_arg);
|
||||
|
||||
char *
|
||||
BIO_get_callback_arg(const BIO *b)
|
||||
BIO_get_callback_arg(const BIO *bio)
|
||||
{
|
||||
return b->cb_arg;
|
||||
return bio->cb_arg;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_get_callback_arg);
|
||||
|
||||
const char *
|
||||
BIO_method_name(const BIO *b)
|
||||
BIO_method_name(const BIO *bio)
|
||||
{
|
||||
return b->method->name;
|
||||
return bio->method->name;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_method_name);
|
||||
|
||||
int
|
||||
BIO_method_type(const BIO *b)
|
||||
BIO_method_type(const BIO *bio)
|
||||
{
|
||||
return b->method->type;
|
||||
return bio->method->type;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_method_type);
|
||||
|
||||
|
@ -544,37 +534,37 @@ BIO_gets(BIO *b, char *in, int inl)
|
|||
LCRYPTO_ALIAS(BIO_gets);
|
||||
|
||||
int
|
||||
BIO_indent(BIO *b, int indent, int max)
|
||||
BIO_indent(BIO *bio, int indent, int max)
|
||||
{
|
||||
if (indent > max)
|
||||
indent = max;
|
||||
if (indent <= 0)
|
||||
return 1;
|
||||
if (BIO_printf(b, "%*s", indent, "") <= 0)
|
||||
if (BIO_printf(bio, "%*s", indent, "") <= 0)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_indent);
|
||||
|
||||
long
|
||||
BIO_int_ctrl(BIO *b, int cmd, long larg, int iarg)
|
||||
BIO_int_ctrl(BIO *bio, int cmd, long larg, int iarg)
|
||||
{
|
||||
int i;
|
||||
|
||||
i = iarg;
|
||||
return (BIO_ctrl(b, cmd, larg, (char *)&i));
|
||||
return BIO_ctrl(bio, cmd, larg, (char *)&i);
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_int_ctrl);
|
||||
|
||||
char *
|
||||
BIO_ptr_ctrl(BIO *b, int cmd, long larg)
|
||||
BIO_ptr_ctrl(BIO *bio, int cmd, long larg)
|
||||
{
|
||||
char *p = NULL;
|
||||
|
||||
if (BIO_ctrl(b, cmd, larg, (char *)&p) <= 0)
|
||||
return (NULL);
|
||||
if (BIO_ctrl(bio, cmd, larg, (char *)&p) <= 0)
|
||||
return NULL;
|
||||
else
|
||||
return (p);
|
||||
return p;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_ptr_ctrl);
|
||||
|
||||
|
@ -730,7 +720,7 @@ LCRYPTO_ALIAS(BIO_get_retry_BIO);
|
|||
int
|
||||
BIO_get_retry_reason(BIO *bio)
|
||||
{
|
||||
return (bio->retry_reason);
|
||||
return bio->retry_reason;
|
||||
}
|
||||
LCRYPTO_ALIAS(BIO_get_retry_reason);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue