diff options
author | Richard Levitte <levitte@openssl.org> | 2017-03-28 16:57:41 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2017-03-29 16:16:25 +0200 |
commit | 1e53a9fd1ad1260274065c12d0e9efbabb7d94e1 (patch) | |
tree | 12c644de597b66cf7543eb78a38fa2c9882ed4fb /crypto/bio/b_print.c | |
parent | 6edc71456463f66008b9cf40dadf00aba037f8da (diff) |
Add z modifier parsing to the BIO_printf et all format string
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3064)
Diffstat (limited to 'crypto/bio/b_print.c')
-rw-r--r-- | crypto/bio/b_print.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/crypto/bio/b_print.c b/crypto/bio/b_print.c index e91ab6de22..86aec79e44 100644 --- a/crypto/bio/b_print.c +++ b/crypto/bio/b_print.c @@ -89,6 +89,7 @@ static int _dopr(char **sbuffer, char **buffer, #define DP_C_LONG 2 #define DP_C_LDOUBLE 3 #define DP_C_LLONG 4 +#define DP_C_SIZE 5 /* Floating point formats */ #define F_FORMAT 0 @@ -214,6 +215,10 @@ _dopr(char **sbuffer, cflags = DP_C_LDOUBLE; ch = *format++; break; + case 'z': + cflags = DP_C_SIZE; + ch = *format++; + break; default: break; } @@ -233,6 +238,9 @@ _dopr(char **sbuffer, case DP_C_LLONG: value = va_arg(args, LLONG); break; + case DP_C_SIZE: + value = va_arg(args, ossl_ssize_t); + break; default: value = va_arg(args, int); break; @@ -253,11 +261,14 @@ _dopr(char **sbuffer, value = (unsigned short int)va_arg(args, unsigned int); break; case DP_C_LONG: - value = (LLONG) va_arg(args, unsigned long int); + value = (LLONG)va_arg(args, unsigned long int); break; case DP_C_LLONG: value = va_arg(args, unsigned LLONG); break; + case DP_C_SIZE: + value = (ossl_ssize_t)va_arg(args, size_t); + break; default: value = (LLONG) va_arg(args, unsigned int); break; |