]> git.pld-linux.org Git - packages/tar.git/blame - tar-git.patch
- BR: help2man
[packages/tar.git] / tar-git.patch
CommitLineData
8787de90
AM
1commit a3f1d933cc5e61037100f5e60eac45764b8b4b50
2Author: Sergey Poznyakoff <gray@gnu.org.ua>
3Date: Thu Mar 11 12:19:32 2010 +0200
4
5 Bugfix.
6
7 * src/names.c (collect_and_sort_names): Initialize prev_name.
8 Reported by Dmitry V. Levin.
9
10diff --git a/src/names.c b/src/names.c
11index 1146020..ea2ce76 100644
12--- a/src/names.c
13+++ b/src/names.c
14@@ -871,7 +871,7 @@ void
15 collect_and_sort_names (void)
16 {
17 struct name *name;
18- struct name *next_name, *prev_name;
19+ struct name *next_name, *prev_name = NULL;
20 int num_names;
21 struct stat statbuf;
22 Hash_table *nametab;
23commit 67b4f3519d838c6f16f5b6b63c0b9b8669fb3dd9
24Author: Sergey Poznyakoff <gray@gnu.org.ua>
25Date: Fri Mar 12 09:48:46 2010 +0200
26
27 Bugfixes.
28
29 * src/buffer.c (check_label_pattern): Initialize result.
30 * tests/remfiles01.at: Skip if run with root privileges.
31
32diff --git a/src/buffer.c b/src/buffer.c
33index 8e1bb9b..dfc8456 100644
34--- a/src/buffer.c
35+++ b/src/buffer.c
36@@ -1374,7 +1374,7 @@ static bool
37 check_label_pattern (const char *label)
38 {
39 char *string;
40- bool result;
41+ bool result = false;
42
43 if (fnmatch (volume_label_option, label, 0) == 0)
44 return true;
45diff --git a/tests/remfiles01.at b/tests/remfiles01.at
46index 940fd95..73752b4 100644
47--- a/tests/remfiles01.at
48+++ b/tests/remfiles01.at
49@@ -30,6 +30,7 @@ AT_KEYWORDS([create remove-files remfiles01 gzip])
50
51 unset TAR_OPTIONS
52 AT_CHECK([
53+AT_UNPRIVILEGED_PREREQ
54 AT_GZIP_PREREQ
55 AT_SORT_PREREQ
56
57commit 340dbf5aabfee4e1e657f8ebf202a2fee1750a63
58Author: Sergey Poznyakoff <gray@gnu.org.ua>
59Date: Sat Mar 20 13:14:31 2010 +0200
60
61 Fix undesired error exit on receiving SIGPIPE.
62
63 * src/tar.c: Do not ignore SIGPIPE.
64 * tests/sigpipe.at: New testcase.
65 * tests/Makefile.am, tests/testsuite.at: Add sigpipe.at
66 * tests/remfiles01.at: Fix error code expectation.
67 * NEWS: Update.
68
69diff --git a/src/tar.c b/src/tar.c
70index e3fdf7b..b127963 100644
71--- a/src/tar.c
72+++ b/src/tar.c
73@@ -2570,8 +2570,6 @@ main (int argc, char **argv)
74
75 obstack_init (&argv_stk);
76
77- /* Ensure default behavior for some signals */
78- signal (SIGPIPE, SIG_IGN);
79 /* System V fork+wait does not work if SIGCHLD is ignored. */
80 signal (SIGCHLD, SIG_DFL);
81
82diff --git a/tests/Makefile.am b/tests/Makefile.am
83index 8f16244..31811b0 100644
84--- a/tests/Makefile.am
85+++ b/tests/Makefile.am
86@@ -127,6 +127,7 @@ TESTSUITE_AT = \
87 shortfile.at\
88 shortupd.at\
89 shortrec.at\
90+ sigpipe.at\
91 sparse01.at\
92 sparse02.at\
93 sparse03.at\
94diff --git a/tests/remfiles01.at b/tests/remfiles01.at
95index 73752b4..86b5c03 100644
96--- a/tests/remfiles01.at
97+++ b/tests/remfiles01.at
98@@ -52,7 +52,9 @@ EC=$?
99 sed -n '/(child)/p' err >&2
100 rm err
101 find . | sort
102-exit $EC
103+# Gzip exit code is propagated to the shell. Usually it is
104+# 141. We convert all non-zero exits to 2 to make it predictable.
105+test $EC && exit 2
106 ],
107 [2],
108 [.
109diff --git a/tests/sigpipe.at b/tests/sigpipe.at
110new file mode 100644
111index 0000000..9edca77
112--- /dev/null
113+++ b/tests/sigpipe.at
114@@ -0,0 +1,39 @@
115+# Process this file with autom4te to create testsuite. -*- Autotest -*-
116+
117+# Test suite for GNU tar.
118+# Copyright (C) 2010 Free Software Foundation, Inc.
119+
120+# This program is free software; you can redistribute it and/or modify
121+# it under the terms of the GNU General Public License as published by
122+# the Free Software Foundation; either version 3, or (at your option)
123+# any later version.
124+
125+# This program is distributed in the hope that it will be useful,
126+# but WITHOUT ANY WARRANTY; without even the implied warranty of
127+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
128+# GNU General Public License for more details.
129+
130+# You should have received a copy of the GNU General Public License
131+# along with this program. If not, see <http://www.gnu.org/licenses/>.
132+
133+AT_SETUP([sigpipe handling])
134+AT_KEYWORDS([sigpipe])
135+
136+# Description: Tar 1.23 ignored sigpipe which lead to spurious "write
137+# error" diagnostics when piping output to another programs.
138+# Reported-by: "Dmitry V. Levin" <ldv@altlinux.org>
139+# References: http://lists.gnu.org/archive/html/bug-tar/2010-03/msg00039.html
140+# <20100319184141.GC30047@wo.int.altlinux.org>
141+
142+AT_CHECK([
143+genfile --length 2048 --file first
144+genfile --length 2048 --file second
145+genfile --length 2049 --file third
146+
147+tar cf archive first second third
148+
149+tar tf archive | :
150+],
151+[0])
152+
153+AT_CLEANUP
154diff --git a/tests/testsuite.at b/tests/testsuite.at
155index 3e75ed8..9205d52 100644
156--- a/tests/testsuite.at
157+++ b/tests/testsuite.at
158@@ -231,6 +231,8 @@ m4_include([remfiles01.at])
159 m4_include([remfiles02.at])
160 m4_include([remfiles03.at])
161
162+m4_include([sigpipe.at])
163+
164 m4_include([star/gtarfail.at])
165 m4_include([star/gtarfail2.at])
166
167commit 40dea1ae7fc892a54eae2efd30ddd8559c697525
168Author: Sergey Poznyakoff <gray@gnu.org.ua>
169Date: Sat Mar 27 22:24:19 2010 +0200
170
171 Fix coredump.
172
173 * src/names.c (collect_and_sort_names): Remove
174 entry from the table before freeing it.
175
176diff --git a/src/names.c b/src/names.c
177index 2beaf3e..a3c6f58 100644
178--- a/src/names.c
179+++ b/src/names.c
180@@ -986,6 +986,7 @@ collect_and_sort_names (void)
181 {
182 if (p->child)
183 rebase_child_list (p->child, name);
184+ hash_delete (nametab, name);
185 /* FIXME: remove_directory (p->caname); ? */
186 remname (p);
187 free_name (p);
This page took 0.08092 seconds and 4 git commands to generate.