summaryrefslogtreecommitdiff
path: root/cord
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2022-05-11 08:56:01 +0300
committerIvan Maidanski <ivmai@mail.ru>2022-05-11 16:56:49 +0300
commitee5e0dd8a3a93483c4a9e6ec14e5a9cb98647e39 (patch)
tree05b8ec0ccbaf94e72ea2e21095321951d7e6e932 /cord
parent8f72b3545c60e79b18b9cfc18ff6b72270da653e (diff)
downloadbdwgc-ee5e0dd8a3a93483c4a9e6ec14e5a9cb98647e39.tar.gz
Workaround 'signed to bigger unsigned value cast' defect in CORD_vsprintf
(fix of commit d82755f6f) Issue #439 (bdwgc). * cord/cordprnt.c (CORD_vsprintf): If long_arg==2 then cast result of ec_len(result) to unsigned type first (before casting to size_t).
Diffstat (limited to 'cord')
-rw-r--r--cord/cordprnt.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/cord/cordprnt.c b/cord/cordprnt.c
index 31f5e25b..ec07c790 100644
--- a/cord/cordprnt.c
+++ b/cord/cordprnt.c
@@ -239,7 +239,7 @@ int CORD_vsprintf(CORD * out, CORD format, va_list args)
*pos_ptr = ec_len(result);
} else if (long_arg == 2) {
size_t * pos_ptr = va_arg(args, size_t *);
- *pos_ptr = (size_t)ec_len(result);
+ *pos_ptr = (size_t)(unsigned)ec_len(result);
} else if (long_arg > 0) {
long * pos_ptr;
pos_ptr = va_arg(args, long *);