Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/lib/libsa libsa/printf: Do not fetch long va_arg as long...
details: https://anonhg.NetBSD.org/src/rev/0984ff5c7269
branches: trunk
changeset: 376057:0984ff5c7269
user: rin <rin%NetBSD.org@localhost>
date: Mon May 29 03:56:52 2023 +0000
description:
libsa/printf: Do not fetch long va_arg as long long.
This does real harm iff all of the following conditions are satisfied:
(1) On ILP32 architectures.
(2) Both LIBSA_PRINTF_LONGLONG_SUPPORT and LIBSA_PRINTF_WIDTH_SUPPORT
compile-time options are enabled.
(3) Width field is used with 'l' modifier.
This is an implicit-fallthrough bug, but unfortunately, GCC 10.4 cannot
find this out somehow...
XXX
Pull up to netbsd-10 and netbsd-9. netbsd-8 is not affected.
diffstat:
sys/lib/libsa/subr_prf.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diffs (17 lines):
diff -r 6d53b1c30c67 -r 0984ff5c7269 sys/lib/libsa/subr_prf.c
--- a/sys/lib/libsa/subr_prf.c Sun May 28 21:42:40 2023 +0000
+++ b/sys/lib/libsa/subr_prf.c Mon May 29 03:56:52 2023 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: subr_prf.c,v 1.29 2020/06/06 15:45:47 thorpej Exp $ */
+/* $NetBSD: subr_prf.c,v 1.30 2023/05/29 03:56:52 rin Exp $ */
/*-
* Copyright (c) 1993
@@ -209,6 +209,7 @@ reswitch:
break;
++fmt;
}
+ goto reswitch;
#endif
case 'l':
#ifdef LIBSA_PRINTF_LONGLONG_SUPPORT
Home |
Main Index |
Thread Index |
Old Index