Package init

This commit is contained in:
overweight 2019-09-30 10:35:14 -04:00
commit cd2b54cf41
5 changed files with 250 additions and 0 deletions

View File

@ -0,0 +1,61 @@
From 0feb1a80f3777f4c244b46958aa9f730de9e18b6 Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@microsoft.com>
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 <stfrench@microsoft.com>
---
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

View File

@ -0,0 +1,25 @@
From 2244e109ae30aeb0a21deaa591f6e11fa2039e7d Mon Sep 17 00:00:00 2001
From: Pavel Shilovsky <pshilov@microsoft.com>
Date: Sat, 16 Mar 2019 12:34:13 -0700
Subject: [PATCH 28/39] cifs.upcall: fix a compiler warning
Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
---
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

View File

@ -0,0 +1,53 @@
From fe54b753f57686382754521774fef46a537322fb Mon Sep 17 00:00:00 2001
From: liujiawen <liujiawen10@huawei.com>
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

BIN
cifs-utils-6.8.tar.bz2 Normal file

Binary file not shown.

111
cifs-utils.spec Normal file
View File

@ -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<zoujing13@huawei.com> - 6.8-5
- Type:enhancemnet
- ID:NA
- SUG:restart
- DESCi:openEuler Debranding
* Tue Aug 20 2019 zoujing<zoujing13@huawei.com> - 6.8-4
- Type:enhancemnet
- ID:NA
- SUG:restart
- DESCi:openEuler Debranding
* Tue Aug 20 2019 zhanghaibo <ted.zhang@huawei.com> - 6.8-3
- correct patch name
* Tue Jul 23 2019 liujiawen <liujiawen10@huawei.com> - 6.8-2.2
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:mount.cifs: fix memory leaks
* Wed Jul 10 2019 zhangyujing <zhangyujing1@huawei.com> - 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<zoujing13@huawei.com> - 6.8-2
- Package Initialization