Module Name: src Committed By: joerg Date: Sat Sep 12 19:05:11 UTC 2015
Modified Files: src/gnu/dist/grep/src: grep.c Log Message: Avoid TYPE_MAXIMUM, it depends on undefined behavior. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/gnu/dist/grep/src/grep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/gnu/dist/grep/src/grep.c diff -u src/gnu/dist/grep/src/grep.c:1.15 src/gnu/dist/grep/src/grep.c:1.16 --- src/gnu/dist/grep/src/grep.c:1.15 Thu Jun 12 07:42:46 2014 +++ src/gnu/dist/grep/src/grep.c Sat Sep 12 19:05:11 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: grep.c,v 1.15 2014/06/12 07:42:46 dholland Exp $ */ +/* $NetBSD: grep.c,v 1.16 2015/09/12 19:05:11 joerg Exp $ */ /* grep.c - main driver file for grep. Copyright 1992, 1997-1999, 2000 Free Software Foundation, Inc. @@ -53,6 +53,13 @@ struct stats struct stat stat; }; +#include <limits.h> +#define MAX_OFF_T (sizeof(off_t) == sizeof(char) ? INT_MAX : \ + (sizeof(off_t) == sizeof(short) ? SHRT_MAX : \ + (sizeof(off_t) == sizeof(int) ? INT_MAX : \ + (sizeof(off_t) == sizeof(long) ? LONG_MAX : \ + (sizeof(off_t) == sizeof(long long) ? LLONG_MAX : INTMAX_MAX))))) + /* base of chain of stat buffers, used to detect directory loops */ static struct stats stats_base; @@ -1341,7 +1348,7 @@ main (int argc, char **argv) eolbyte = '\n'; filename_mask = ~0; - max_count = TYPE_MAXIMUM (off_t); + max_count = MAX_OFF_T; /* The value -1 means to use DEFAULT_CONTEXT. */ out_after = out_before = -1; @@ -1516,7 +1523,7 @@ main (int argc, char **argv) break; /* Fall through. */ case LONGINT_OVERFLOW: - max_count = TYPE_MAXIMUM (off_t); + max_count = MAX_OFF_T; break; default: