Module Name: src Committed By: bouyer Date: Sun Jan 13 17:14:47 UTC 2013
Modified Files: src/gnu/dist/grep/lib [netbsd-5-0]: getopt.c regex.c src/gnu/dist/grep/src [netbsd-5-0]: ansi2knr.c dfa.c grep.c search.c Log Message: Pull up following revision(s) (requested by apb in ticket #1838): gnu/dist/grep/src/grep.c: revision 1.14 gnu/dist/grep/src/ansi2knr.c: revision 1.2 gnu/dist/grep/src/search.c: revision 1.4 gnu/dist/grep/src/dfa.c: revision 1.3 gnu/dist/grep/lib/getopt.c: revision 1.2 gnu/dist/grep/lib/regex.c: revision 1.2 Change several int variables to size_t, ssize_t, or ptrdiff_t. This should fix the bug described in CVE-2012-5667 when an input line is so long that its length cannot be stored in an int variable. This change to NetBSD's version of GNU grep 2.5.1 (licenced under GPLv2) was made without direct reference to any code licenced under GPLv3. Thanks to Ignatios Souvatzis for looking at GPLv3-derived patches and describing the problem in general terms. Thanks to pkgsrc/devel/coccinelle for helping me find places where int variables were used to store the results from pointer arithmetic or strlen(). Thanks to Martin Husemann for testing. To generate a diff of this commit: cvs rdiff -u -r1.1.1.1 -r1.1.1.1.42.1 src/gnu/dist/grep/lib/getopt.c \ src/gnu/dist/grep/lib/regex.c cvs rdiff -u -r1.1.1.1 -r1.1.1.1.42.1 src/gnu/dist/grep/src/ansi2knr.c cvs rdiff -u -r1.2 -r1.2.42.1 src/gnu/dist/grep/src/dfa.c cvs rdiff -u -r1.12 -r1.12.8.1 src/gnu/dist/grep/src/grep.c cvs rdiff -u -r1.3 -r1.3.8.1 src/gnu/dist/grep/src/search.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.