summaryrefslogtreecommitdiffstats
path: root/crypto/bio/b_print.c
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2017-03-28 16:57:41 +0200
committerRichard Levitte <levitte@openssl.org>2017-03-29 16:16:25 +0200
commit1e53a9fd1ad1260274065c12d0e9efbabb7d94e1 (patch)
tree12c644de597b66cf7543eb78a38fa2c9882ed4fb /crypto/bio/b_print.c
parent6edc71456463f66008b9cf40dadf00aba037f8da (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.c13
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;