From: Paul Eggert Date: Thu, 3 Oct 2019 19:37:12 +0000 (-0700) Subject: nl: fix integer-overflow bug X-Git-Tag: v8.32~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ac2b4a43e679a3984dbdb42f141ef0af9c0f7903;p=thirdparty%2Fcoreutils.git nl: fix integer-overflow bug Problem reported by Roland Illig (Bug#37585) * src/nl.c (print_lineno): Don’t rely on undefined behavior when checking for integer overflow. --- diff --git a/src/nl.c b/src/nl.c index 43092b4fe1..d85408c8cf 100644 --- a/src/nl.c +++ b/src/nl.c @@ -275,14 +275,10 @@ build_type_arg (char const **typep, static void print_lineno (void) { - intmax_t next_line_no; - printf (lineno_format, lineno_width, line_no, separator_str); - next_line_no = line_no + page_incr; - if (next_line_no < line_no) + if (INT_ADD_WRAPV (line_no, page_incr, &line_no)) die (EXIT_FAILURE, 0, _("line number overflow")); - line_no = next_line_no; } /* Switch to a header section. */