Initialize data structures early enough

* src/patch.c (main): Initialize data structures early enough, before error
paths can access them.
* tests/bad-usage: Test bad command line usage.
* tests/Makefile.am (TESTS): Add bad-usage here.
This commit is contained in:
Andreas Gruenbacher 2012-10-04 12:33:09 +02:00
parent 47191c287d
commit 291ec17581
3 changed files with 23 additions and 4 deletions

View File

@ -150,6 +150,10 @@ main (int argc, char **argv)
else if ((version_control = getenv ("VERSION_CONTROL")))
version_control_context = "$VERSION_CONTROL";
init_backup_hash_table ();
init_files_to_delete ();
init_files_to_output ();
/* parse switches */
Argc = argc;
Argv = argv;
@ -162,10 +166,6 @@ main (int argc, char **argv)
if (make_backups | backup_if_mismatch)
backup_type = get_version (version_control_context, version_control);
init_backup_hash_table ();
init_files_to_delete ();
init_files_to_output ();
init_output (&outstate);
if (outfile)
outstate.ofp = open_outfile (outfile);

View File

@ -20,6 +20,7 @@ TESTS = \
asymmetric-hunks \
backup-prefix-suffix \
bad-filenames \
bad-usage \
concat-git-diff \
copy-rename \
corrupt-reject-files \

18
tests/bad-usage Normal file
View File

@ -0,0 +1,18 @@
# Copyright (C) 2009, 2011-2012 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# in any medium, are permitted without royalty provided the copyright
# notice and this notice are preserved.
. $srcdir/test-lib.sh
require_cat
use_local_patch
use_tmpdir
# ==============================================================
check 'patch -px || echo "status: $?"' <<EOF
$PATCH: **** strip count x is not a number
status: 2
EOF