--- /dev/null
+There are missing calls of close() leading to resource leak (fd leak).\r
+Simple reproducer:\r
+. /\r
+and /proc/$$/fd contain one open fd for each above call\r
+\r
+Signed-off-by: Roman Rakus <rrakus@redhat.com>\r
+---\r
+ builtins/evalfile.c | 3 +++\r
+ 1 file changed, 3 insertions(+)\r
+\r
+diff --git a/builtins/evalfile.c b/builtins/evalfile.c\r
+index 60f89d1..d30bd96 100644\r
+--- a/builtins/evalfile.c\r
++++ b/builtins/evalfile.c\r
+@@ -133,11 +133,13 @@ file_error_and_exit:\r
+ if (S_ISDIR (finfo.st_mode))\r
+ {\r
+ (*errfunc) (_("%s: is a directory"), filename);\r
++ close(fd);\r
+ return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE : -1);\r
+ }\r
+ else if ((flags & FEVAL_REGFILE) && S_ISREG (finfo.st_mode) == 0)\r
+ {\r
+ (*errfunc) (_("%s: not a regular file"), filename);\r
++ close(fd);\r
+ return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE : -1);\r
+ }\r
+ \r
+@@ -146,6 +148,7 @@ file_error_and_exit:\r
+ if (file_size != finfo.st_size || file_size + 1 < file_size)\r
+ {\r
+ (*errfunc) (_("%s: file is too large"), filename);\r
++ close(fd);\r
+ return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE : -1);\r
+ } \r
+ \r
+-- \r
+1.7.11.7\r
+\r
%define ver 4.2
%define patchlevel 45
-%define rel 1
+%define rel 2
Summary: GNU Bourne Again Shell (bash)
Summary(fr.UTF-8): Le shell Bourne Again de GNU
Summary(pl.UTF-8): Powłoka GNU Bourne Again Shell (bash)
Patch11: %{name}-elinks_cont.patch
Patch12: %{name}-pl.po-update.patch
Patch13: %{name}-format-string.patch
+Patch14: %{name}-4.2-missing_closes.patch
%patchset_source -f http://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-%03g 1 %{patchlevel}
URL: http://www.gnu.org/software/bash/
BuildRequires: autoconf
%patch11 -p1
%patch12 -p1
%patch13 -p1
+%patch14 -p1
%build
cp -f /usr/share/automake/config.* support
--enable-dparen-arithmetic \
--enable-separate-helpfiles \
--without-bash-malloc \
- `[ "$mode" = "static" ] && echo "--enable-static-link"` \
+ $([ "$mode" = "static" ] && echo "--enable-static-link") \
--with-installed-readline
%{__make} \
DEFS="-DHAVE_CONFIG_H -D_GNU_SOURCE"
-[ "$mode" = "static" ] && mv -f bash bash.static || :
+[ "$mode" = "static" ] && mv -f bash bash.static
done
%{?with_tests:%{__make} tests}