From 51a8f707131c36d7a88753e3bee839b2a4a336e4 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 1 Jun 2013 19:20:06 -0700 Subject: od: -wN, N>64K, avoid misbehavior on systems with 32-bit size_t * src/od.c (PRINT_FIELDS): Declare "i" to be of type uintmax_t, so that the numerator in the expression for "next_pad" does not overflow. (print_named_ascii): Likewise. (print_ascii): Likewise. Bug introduced via commit v6.12-42-g20c0b87. * tests/misc/od.pl: Exercise each of the three affected code paths. * NEWS (Bug fixes): Mention it. Reported by Rich Burridge. --- src/od.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/od.c b/src/od.c index e8cab46ab..1c234015f 100644 --- a/src/od.c +++ b/src/od.c @@ -400,7 +400,7 @@ N (size_t fields, size_t blank, void const *block, \ char const *FMT_STRING, int width, int pad) \ { \ T const *p = block; \ - size_t i; \ + uintmax_t i; \ int pad_remaining = pad; \ for (i = fields; blank < i; i--) \ { \ @@ -456,7 +456,7 @@ print_named_ascii (size_t fields, size_t blank, void const *block, int width, int pad) { unsigned char const *p = block; - size_t i; + uintmax_t i; int pad_remaining = pad; for (i = fields; blank < i; i--) { @@ -487,7 +487,7 @@ print_ascii (size_t fields, size_t blank, void const *block, int pad) { unsigned char const *p = block; - size_t i; + uintmax_t i; int pad_remaining = pad; for (i = fields; blank < i; i--) { -- cgit v1.2.3-70-g09d2