diff options
Diffstat (limited to 'crypto/bio/bss_bio.c')
| -rw-r--r-- | crypto/bio/bss_bio.c | 47 |
1 files changed, 13 insertions, 34 deletions
diff --git a/crypto/bio/bss_bio.c b/crypto/bio/bss_bio.c index 94cc63c9fe6..0d0f9356f7d 100644 --- a/crypto/bio/bss_bio.c +++ b/crypto/bio/bss_bio.c @@ -19,20 +19,14 @@ #include <openssl/bio.h> #include <openssl/err.h> -#include <openssl/err.h> #include <openssl/crypto.h> -#include "openssl/e_os.h" -#ifndef SSIZE_MAX -# define SSIZE_MAX INT_MAX -#endif - static int bio_new(BIO *bio); static int bio_free(BIO *bio); static int bio_read(BIO *bio, char *buf, int size); -static int bio_write(BIO *bio, const char *buf, int num); +static int bio_write(BIO *bio, char *buf, int num); static long bio_ctrl(BIO *bio, int cmd, long num, void *ptr); -static int bio_puts(BIO *bio, const char *str); +static int bio_puts(BIO *bio, char *str); static int bio_make_pair(BIO *bio1, BIO *bio2); static void bio_destroy_pair(BIO *bio); @@ -211,10 +205,10 @@ static int bio_read(BIO *bio, char *buf, int size_) */ /* WARNING: The non-copying interface is largely untested as of yet * and may contain bugs. */ -static ssize_t bio_nread0(BIO *bio, char **buf) +static size_t bio_nread0(BIO *bio, char **buf) { struct bio_bio_st *b, *peer_b; - ssize_t num; + size_t num; BIO_clear_retry_flags(bio); @@ -249,20 +243,15 @@ static ssize_t bio_nread0(BIO *bio, char **buf) return num; } -static ssize_t bio_nread(BIO *bio, char **buf, size_t num_) +static size_t bio_nread(BIO *bio, char **buf, size_t num) { struct bio_bio_st *b, *peer_b; - ssize_t num, available; - - if (num_ > SSIZE_MAX) - num = SSIZE_MAX; - else - num = (ssize_t)num_; + size_t available; available = bio_nread0(bio, buf); if (num > available) num = available; - if (num <= 0) + if (num == 0) return num; b = bio->ptr; @@ -283,7 +272,7 @@ static ssize_t bio_nread(BIO *bio, char **buf, size_t num_) } -static int bio_write(BIO *bio, const char *buf, int num_) +static int bio_write(BIO *bio, char *buf, int num_) { size_t num = num_; size_t rest; @@ -362,7 +351,7 @@ static int bio_write(BIO *bio, const char *buf, int num_) * (example usage: bio_nwrite0(), write to buffer, bio_nwrite() * or just bio_nwrite(), write to buffer) */ -static ssize_t bio_nwrite0(BIO *bio, char **buf) +static size_t bio_nwrite0(BIO *bio, char **buf) { struct bio_bio_st *b; size_t num; @@ -410,20 +399,15 @@ static ssize_t bio_nwrite0(BIO *bio, char **buf) return num; } -static ssize_t bio_nwrite(BIO *bio, char **buf, size_t num_) +static size_t bio_nwrite(BIO *bio, char **buf, size_t num) { struct bio_bio_st *b; - ssize_t num, space; - - if (num_ > SSIZE_MAX) - num = SSIZE_MAX; - else - num = (ssize_t)num_; + size_t space; space = bio_nwrite0(bio, buf); if (num > space) num = space; - if (num <= 0) + if (num == 0) return num; b = bio->ptr; assert(b != NULL); @@ -525,11 +509,6 @@ static long bio_ctrl(BIO *bio, int cmd, long num, void *ptr) ret = 1; break; - case BIO_C_NREAD0: - /* prepare for non-copying read */ - ret = (long) bio_nread0(bio, ptr); - break; - case BIO_C_NREAD: /* non-copying read */ ret = (long) bio_nread(bio, ptr, (size_t) num); @@ -628,7 +607,7 @@ static long bio_ctrl(BIO *bio, int cmd, long num, void *ptr) return ret; } -static int bio_puts(BIO *bio, const char *str) +static int bio_puts(BIO *bio, char *str) { return bio_write(bio, str, strlen(str)); } |
