commit cd2b54cf41e06de8f45cc440421a2a347fdeed47 Author: overweight <5324761+overweight@user.noreply.gitee.com> Date: Mon Sep 30 10:35:14 2019 -0400 Package init diff --git a/6000-setcifsacl-fix-adding-ACE-when-owner-sid-in-unexpect.patch b/6000-setcifsacl-fix-adding-ACE-when-owner-sid-in-unexpect.patch new file mode 100644 index 0000000..02bd6cb --- /dev/null +++ b/6000-setcifsacl-fix-adding-ACE-when-owner-sid-in-unexpect.patch @@ -0,0 +1,61 @@ +From 0feb1a80f3777f4c244b46958aa9f730de9e18b6 Mon Sep 17 00:00:00 2001 +From: Steve French +Date: Fri, 1 Mar 2019 23:11:25 -0600 +Subject: [PATCH 25/39] setcifsacl: fix adding ACE when owner sid in unexpected + location + +If owner information is after the ACEs instead of before (e.g. Azure servers) in the ACL query +then we would get "invalid argument" returned on setcifsacl -a (adding an ACE). + +This fixes that. + +Signed-off-by: Steve French +--- + setcifsacl.c | 29 ++++++++++++++++++++++++----- + 1 file changed, 24 insertions(+), 5 deletions(-) + +diff --git a/setcifsacl.c b/setcifsacl.c +index ba34403..1b98c37 100644 +--- a/setcifsacl.c ++++ b/setcifsacl.c +@@ -106,13 +106,32 @@ copy_sec_desc(const struct cifs_ntsd *pntsd, struct cifs_ntsd *pnntsd, + + /* copy owner sid */ + owner_sid_ptr = (struct cifs_sid *)((char *)pntsd + osidsoffset); +- nowner_sid_ptr = (struct cifs_sid *)((char *)pnntsd + osidsoffset); +- size = copy_cifs_sid(nowner_sid_ptr, owner_sid_ptr); +- bufsize += size; ++ group_sid_ptr = (struct cifs_sid *)((char *)pntsd + gsidsoffset); ++ /* ++ * some servers like Azure return the owner and group SIDs at end rather ++ * than at the beginning of the ACL so don't want to overwrite the last ACEs ++ */ ++ if (dacloffset <= osidsoffset) { ++ /* owners placed at end of ACL */ ++ nowner_sid_ptr = (struct cifs_sid *)((char *)pnntsd + dacloffset + size); ++ pnntsd->osidoffset = dacloffset + size; ++ size = copy_cifs_sid(nowner_sid_ptr, owner_sid_ptr); ++ bufsize += size; ++ /* put group SID after owner SID */ ++ ngroup_sid_ptr = (struct cifs_sid *)((char *)nowner_sid_ptr + size); ++ pnntsd->gsidoffset = pnntsd->osidoffset + size; ++ } else { ++ /* ++ * Most servers put the owner information at the beginning, ++ * before the ACL ++ */ ++ nowner_sid_ptr = (struct cifs_sid *)((char *)pnntsd + osidsoffset); ++ size = copy_cifs_sid(nowner_sid_ptr, owner_sid_ptr); ++ bufsize += size; ++ ngroup_sid_ptr = (struct cifs_sid *)((char *)pnntsd + gsidsoffset); ++ } + + /* copy group sid */ +- group_sid_ptr = (struct cifs_sid *)((char *)pntsd + gsidsoffset); +- ngroup_sid_ptr = (struct cifs_sid *)((char *)pnntsd + gsidsoffset); + size = copy_cifs_sid(ngroup_sid_ptr, group_sid_ptr); + bufsize += size; + +-- +2.7.4 + diff --git a/6001-cifs.upcall-fix-a-compiler-warning.patch b/6001-cifs.upcall-fix-a-compiler-warning.patch new file mode 100644 index 0000000..9bfe909 --- /dev/null +++ b/6001-cifs.upcall-fix-a-compiler-warning.patch @@ -0,0 +1,25 @@ +From 2244e109ae30aeb0a21deaa591f6e11fa2039e7d Mon Sep 17 00:00:00 2001 +From: Pavel Shilovsky +Date: Sat, 16 Mar 2019 12:34:13 -0700 +Subject: [PATCH 28/39] cifs.upcall: fix a compiler warning + +Signed-off-by: Pavel Shilovsky +--- + cifs.upcall.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/cifs.upcall.c b/cifs.upcall.c +index c92ee62..1559434 100644 +--- a/cifs.upcall.c ++++ b/cifs.upcall.c +@@ -126,6 +126,7 @@ drop_all_capabilities(void) + static int + trim_capabilities(bool unused) + { ++ (void)unused; + return 0; + } + +-- +2.7.4 + diff --git a/9000-mount.cifs-fix-memory-leaks.patch b/9000-mount.cifs-fix-memory-leaks.patch new file mode 100644 index 0000000..a603171 --- /dev/null +++ b/9000-mount.cifs-fix-memory-leaks.patch @@ -0,0 +1,53 @@ +From fe54b753f57686382754521774fef46a537322fb Mon Sep 17 00:00:00 2001 +From: liujiawen +Date: Wed, 24 Jul 2019 03:25:14 +0800 +Subject: [PATCH] Module: modification summary + +reason:fix memory leaks +--- + mount.cifs.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/mount.cifs.c b/mount.cifs.c +index ae7a899..029f01a 100644 +--- a/mount.cifs.c ++++ b/mount.cifs.c +@@ -1830,6 +1830,7 @@ assemble_mountinfo(struct parsed_mount_info *parsed_info, + } + + assemble_exit: ++ free(orgoptions); + return rc; + } + +@@ -1994,8 +1995,11 @@ int main(int argc, char **argv) + + /* chdir into mountpoint as soon as possible */ + rc = acquire_mountpoint(&mountpoint); +- if (rc) ++ if (rc){ ++ free(mountpoint); ++ free(orgoptions); + return rc; ++ } + + /* + * mount.cifs does privilege separation. Most of the code to handle +@@ -2014,6 +2018,7 @@ int main(int argc, char **argv) + /* child */ + rc = assemble_mountinfo(parsed_info, thisprogram, mountpoint, + orig_dev, orgoptions); ++ free(mountpoint); + return rc; + } else { + /* parent */ +@@ -2149,5 +2154,6 @@ mount_exit: + } + free(options); + free(orgoptions); ++ free(mountpoint); + return rc; + } +-- +2.7.4 + diff --git a/cifs-utils-6.8.tar.bz2 b/cifs-utils-6.8.tar.bz2 new file mode 100644 index 0000000..b5751c2 Binary files /dev/null and b/cifs-utils-6.8.tar.bz2 differ diff --git a/cifs-utils.spec b/cifs-utils.spec new file mode 100644 index 0000000..f6239a1 --- /dev/null +++ b/cifs-utils.spec @@ -0,0 +1,111 @@ +Name: cifs-utils +Version: 6.8 +Release: 5 +Summary: Utilities for doing and managing mounts of the Linux CIFS filesystem +License: GPLv3+ +URL: http://linux-cifs.samba.org/cifs-utils/ +Source0: https://download.samba.org/pub/linux-cifs/cifs-utils/%{name}-%{version}.tar.bz2 + +Patch6000: 6000-setcifsacl-fix-adding-ACE-when-owner-sid-in-unexpect.patch +Patch6001: 6001-cifs.upcall-fix-a-compiler-warning.patch +Patch9000: 9000-mount.cifs-fix-memory-leaks.patch + +BuildRequires: python3-docutils libcap-ng-devel libtalloc-devel krb5-devel keyutils-libs-devel autoconf +BuildRequires: automake libwbclient-devel pam-devel git python3-samba pkg-config fdupes gcc +Provides: pam_cifscreds +Obsoletes: pam_cifscreds +Requires: keyutils + +%description +The in-kernel CIFS filesystem is generally the preferred method for mounting +SMB/CIFS shares on Linux. + +The in-kernel CIFS filesystem relies on a set of user-space tools. That package +of tools is called cifs-utils.Although not really part of Samba proper, these +tools were originally part of the Samba package. For several reasons, shipping +these tools as part of Samba was problematic and it was deemed better to split +them off into their own package. + +%package devel +Summary: Files needed for building plugins for cifs-utils + +%description devel +The SMB/CIFS protocol is a standard file sharing protocol widely deployed +on Microsoft Windows machines. This package contains the header file +necessary for building ID mapping plugins for cifs-utils. + +%package help +Summary: Including man files for cifs-utils +Requires: man + +%description help +This contains man files for the using of cifs-utils. + +%prep +%autosetup -Sgit -n %{name}-%{version} + +%build +%configure --prefix=/usr --with-pamdir=%{_libdir}/security ROOTSBINDIR=%{_sbindir} +make %{?_smp_mflags} + +%install +rm -rf %{buildroot} +%make_install +mkdir -p %{buildroot}%{_sysconfdir}/%{name} +ln -s %{_libdir}/%{name}/idmapwb.so %{buildroot}%{_sysconfdir}/%{name}/idmap-plugin +mkdir -p %{buildroot}%{_sysconfdir}/request-key.d +install -m 644 contrib/request-key.d/cifs.idmap.conf %{buildroot}%{_sysconfdir}/request-key.d +install -m 644 contrib/request-key.d/cifs.spnego.conf %{buildroot}%{_sysconfdir}/request-key.d + +%files +%defattr(-,root,root,-) +%doc +%{_bindir}/* +%{_sbindir}/* +%dir %{_libdir}/%{name} +%{_libdir}/%{name}/idmapwb.so +%{_libdir}/security/pam_cifscreds.so +%dir %{_sysconfdir}/cifs-utils +%config(noreplace) %{_sysconfdir}/request-key.d/cifs.idmap.conf +%config(noreplace) %{_sysconfdir}/request-key.d/cifs.spnego.conf +%ghost %config(noreplace) %{_sysconfdir}/cifs-utils/idmap-plugin + +%files devel +%{_includedir}/cifsidmap.h + +%files help +%{_mandir}/man1/* +%{_mandir}/man8/* + +%changelog +* Fri Aug 30 2019 zoujing - 6.8-5 +- Type:enhancemnet +- ID:NA +- SUG:restart +- DESCi:openEuler Debranding + +* Tue Aug 20 2019 zoujing - 6.8-4 +- Type:enhancemnet +- ID:NA +- SUG:restart +- DESCi:openEuler Debranding + +* Tue Aug 20 2019 zhanghaibo - 6.8-3 +- correct patch name + +* Tue Jul 23 2019 liujiawen - 6.8-2.2 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:mount.cifs: fix memory leaks + +* Wed Jul 10 2019 zhangyujing - 6.8-2.1 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:setcifsacl: fix adding ACE when owner sid in unexpected location + cifs.upcall: fix a compiler warning + +* Mon Jul 1 2019 zoujing - 6.8-2 +- Package Initialization +