diff --git a/acl-2.2.49-setfacl-restore.patch b/acl-2.2.49-setfacl-restore.patch new file mode 100644 index 0000000..777ea7c --- /dev/null +++ b/acl-2.2.49-setfacl-restore.patch @@ -0,0 +1,27 @@ +diff --git a/setfacl/setfacl.c b/setfacl/setfacl.c +index be34e69..db9976f 100644 +--- a/setfacl/setfacl.c ++++ b/setfacl/setfacl.c +@@ -125,7 +125,7 @@ restore( + uid_t uid; + gid_t gid; + mode_t mask, flags; +- struct do_set_args args; ++ struct do_set_args args = { 0 }; + int line = 0, backup_line; + int error, status = 0; + +diff --git a/test/misc.test b/test/misc.test +index 7c62c64..8c885a8 100644 +--- a/test/misc.test ++++ b/test/misc.test +@@ -424,3 +424,9 @@ Now, chmod should change the group_obj entry + > + + $ rmdir d ++ ++Malformed restore file ++ ++ $ echo "# owner: root" > f ++ $ setfacl --restore=f 2>&1 ++ >setfacl: f: No filename found in line 0, aborting diff --git a/acl.spec b/acl.spec index 58972d2..019aa94 100644 --- a/acl.spec +++ b/acl.spec @@ -1,7 +1,7 @@ Summary: Access control list utilities Name: acl Version: 2.2.49 -Release: 2%{?dist} +Release: 3%{?dist} BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libattr-devel >= 2.4.1 BuildRequires: autoconf, libtool >= 1.5, gettext, gawk @@ -9,6 +9,7 @@ Source: http://download.savannah.gnu.org/releases-noredirect/acl/acl-%{version}. Patch0: acl-2.2.3-multilib.patch Patch1: acl-2.2.39-build.patch Patch2: acl-2.2.49-setfacl-walk.patch +Patch3: acl-2.2.49-setfacl-restore.patch License: GPLv2+ Group: System Environment/Base URL: http://oss.sgi.com/projects/xfs/ @@ -46,6 +47,7 @@ defined in POSIX 1003.1e draft standard 17. %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 autoconf %build @@ -101,6 +103,9 @@ rm -rf $RPM_BUILD_ROOT /%{_lib}/libacl.so.* %changelog +* Wed Mar 24 2010 Kamil Dudka 2.2.49-3 +- prevent setfacl --restore from SIGSEGV on malformed restore file (#576550) + * Sat Dec 26 2009 Kamil Dudka 2.2.49-2 - tweaked setfacl tree walk flags (#488674), thanks to Markus Steinborn