FreeBSD src
Go to file
Alex Richardson 81c3f64110 usr.bin/grep: Fix Address OOB read error
I found this when compiling all the bootstrap tools with -fsanitize=addres:

==65590==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x62d000008400 at pc 0x000000473053 bp 0x7ffc1c7dd910 sp 0x7ffc1c7dd0b8
READ of size 32769 at 0x62d000008400 thread T0
    #0 0x473052 in regexec (/local/scratch/alr48/cheri/build/freebsd-amd64-build/local/scratch/alr48/cheri/freebsd/amd64.amd64/tmp/legacy/bin/grep+0x473052)
    #1 0x4c9cf3 in procline /local/scratch/alr48/cheri/freebsd/usr.bin/grep/util.c:539:8
    #2 0x4c8687 in procfile /local/scratch/alr48/cheri/freebsd/usr.bin/grep/util.c:379:18
    #3 0x4c6596 in main /local/scratch/alr48/cheri/freebsd/usr.bin/grep/grep.c:714:8

0x62d000008400 is located 0 bytes to the right of 32768-byte region [0x62d000000400,0x62d000008400)
allocated by thread T0 here:
    #0 0x493d5d in malloc (/local/scratch/alr48/cheri/build/freebsd-amd64-build/local/scratch/alr48/cheri/freebsd/amd64.amd64/tmp/legacy/bin/grep+0x493d5d)
    #1 0x4cad75 in grep_malloc /local/scratch/alr48/cheri/freebsd/usr.bin/grep/util.c:656:13
    #2 0x4c8129 in procfile /local/scratch/alr48/cheri/freebsd/usr.bin/grep/util.c
    #3 0x4c6596 in main /local/scratch/alr48/cheri/freebsd/usr.bin/grep/grep.c:714:8

SUMMARY: AddressSanitizer: heap-buffer-overflow (/local/scratch/alr48/cheri/build/freebsd-amd64-build/local/scratch/alr48/cheri/freebsd/amd64.amd64/tmp/legacy/bin/grep+0x473052) in regexec

Reviewed By:	kevans
MFC after:	1 week
2021-02-09 17:13:32 +00:00
.github/workflows GitHub actions: unbreak macOS build 2021-01-08 15:36:38 +01:00
bin cp: fix indentation 2021-01-27 12:18:45 +01:00
cddl build: remove LIBPTHREAD/LIBTHR build options 2021-01-22 12:33:27 -06:00
contrib Simplify the FreeBSD check using __FreeBSD__ compiler macro. 2021-02-08 16:36:27 -08:00
crypto OpenSSL: Support for kernel TLS offload (KTLS) 2021-01-28 10:24:13 -08:00
etc BSD.usr.dist: remove aout 2021-01-07 19:14:01 -05:00
gnu Bump shared library versions after ncurses bump in 13. 2021-02-01 17:11:49 -08:00
include Fix make includes path to nvpair.h 2021-01-19 21:23:25 +00:00
kerberos5 kerberos5: fix the WITH_OPENLDAP build 2021-01-30 00:07:50 -06:00
lib Revert "SO_RERROR indicates that receive buffer overflows should be handled as errors." 2021-02-08 22:32:32 +00:00
libexec Don't check compat.linux.emul_path before loading linux(4) 2021-02-08 22:00:25 +00:00
release release: disable the 'reldoc' target after the ASCIIDoctor switch 2021-02-05 11:47:15 -05:00
rescue ping: add a ping6 hard link for backwards compatibility 2020-11-26 18:33:04 +00:00
sbin Revert "SO_RERROR indicates that receive buffer overflows should be handled as errors." 2021-02-08 22:32:32 +00:00
secure OpenSSL: Regenerate manual pages. 2021-01-28 10:24:24 -08:00
share wsp: Add sysctl tunable for Z-Axis inversion 2021-02-09 00:35:39 +03:00
stand loader: do not autoselect smaller font than 8x16 with high res display 2021-02-09 13:46:58 +02:00
sys cache: assorted comment fixups 2021-02-09 17:09:44 +01:00
targets ndis(4): remove as previous announced 2021-01-25 21:45:03 +00:00
tests tests/sys/vfs/lookup_cap_dotdot: No longer aborts after ATF update 2021-02-04 17:57:27 +00:00
tools prepare-commit-msg: Remove blank character 2021-02-08 20:18:39 +01:00
usr.bin usr.bin/grep: Fix Address OOB read error 2021-02-09 17:13:32 +00:00
usr.sbin binmiscctl: Avoid segfault with "binmiscctl add" and no extra params 2021-02-08 09:20:38 -05:00
.arcconfig arcconfig: add callsign again 2020-11-23 04:39:29 +00:00
.arclint
.cirrus.yml Revert "Cirrus-CI: Use the default Git history depth" 2021-01-29 11:22:03 -05:00
.clang-format clang-format: Avoid breaking after the opening paren of function definitions 2020-10-28 11:54:00 +00:00
.gitattributes Add a basic clang-format configuration file 2019-06-07 15:23:52 +00:00
.gitignore gitignore: expand list of ignored files 2021-01-14 17:03:57 +01:00
COPYRIGHT copyrights: Happy New Year 2021 2020-12-31 10:29:44 -05:00
LOCKS LOCKS: update current locks 2018-06-09 03:08:04 +00:00
MAINTAINERS Add a pointer to csprng@ for the CSPRNG driver. This is enforced anyway by 2020-09-01 08:02:12 +00:00
Makefile Rename NO_WERROR -> MK_WERROR=no 2021-01-07 09:31:03 +00:00
Makefile.inc1 Remove the MK_LIBCPLUSPLUS option 2021-02-01 09:32:07 +00:00
Makefile.libcompat libcompat: remove redundant path for ncurses 2021-01-07 15:14:52 +01:00
Makefile.sys.inc
ObsoleteFiles.inc Bump shared library versions after ncurses bump in 13. 2021-02-01 17:11:49 -08:00
README Mark the repository has been converted to Git 2020-12-23 12:27:27 +08:00
README.md Mark the repository has been converted to Git 2020-12-23 12:27:27 +08:00
RELNOTES Bump CURRENT to 14.0 2021-01-21 19:10:07 -05:00
UPDATING Bump __FreeBSD_version for multiple LinuxKPI updates conflicting 2021-01-28 16:37:28 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory. This file was last revised on: FreeBSD

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.

For copyright information, please see the file COPYRIGHT in this directory. Additional copyright information also exists for some sources in this tree - please see the specific source directories for more information.

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7), config(8), https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html, and https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information, including setting make(1) variables.

Source Roadmap:

bin		System/user commands.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

stand		Boot loader sources.

sys		Kernel sources.

sys/<arch>/conf Kernel configuration files. GENERIC is the configuration
		used in release builds. NOTES contains documentation of
		all possible entries.

tests		Regression tests which can be run by Kyua.  See tests/README
		for additional information.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see:

https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html