Fix possible memory overwrite in init_from_environment().

It was possible for a user to overwrite memory at a relative location
with 1 by passing a negative file descriptor.
This commit is contained in:
Simon Ruderich
2013-06-13 22:08:08 +02:00
parent f30dbbd26d
commit 59375c2b79
6 changed files with 84 additions and 9 deletions

46
tests/test_environment.sh Executable file
View File

@@ -0,0 +1,46 @@
#!/bin/sh
# Copyright (C) 2013 Simon Ruderich
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
test "x$srcdir" = x && srcdir=.
. "$srcdir/lib.sh"
# Test unexpected values for COLORED_STDERR_FDS environment variable.
# Empty fields.
fds=
test_program example example_environment_empty
test_program_subshell example example_environment_empty
fds=,,,
test_program example example_environment_empty
test_program_subshell example example_environment_empty
fds=,,,2
test_program example example_environment_empty
test_program_subshell example example_environment_empty
fds=2,,,
test_program example example_environment
test_program_subshell example example_environment
# Invalid fds.
fds=-20,-30
test_program example example_environment_empty
test_program_subshell example example_environment_empty
fds=-20,-30,2,
test_program example example_environment
test_program_subshell example example_environment
fds=-20,-30,2,-1,
test_program example example_environment
test_program_subshell example example_environment