Compare commits

...

2 Commits

Author SHA1 Message Date
CentOS Sources
41712aebb3 import python-rtslib-2.1.75-4.el8 2022-11-08 07:08:29 +00:00
CentOS Sources
d99868ab33 import python-rtslib-2.1.74-1.el8 2021-09-10 03:17:18 +00:00
6 changed files with 35 additions and 97 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/rtslib-fb-2.1.73.tar.gz SOURCES/rtslib-fb-2.1.75.tar.gz

View File

@ -1 +1 @@
e9ed6768e70e1da748972b6e350f620db53a53ec SOURCES/rtslib-fb-2.1.73.tar.gz 358077a7fef2e71230a1b5c87b1765c9292f17f6 SOURCES/rtslib-fb-2.1.75.tar.gz

View File

@ -1,15 +1,17 @@
diff --git a/rtslib/fabric.py b/rtslib/fabric.py diff --git a/rtslib/fabric.py b/rtslib/fabric.py
index 02e156c..ff7387f 100644 index eb8f115..c408661 100644
--- a/rtslib/fabric.py --- a/rtslib/fabric.py
+++ b/rtslib/fabric.py +++ b/rtslib/fabric.py
@@ -464,13 +464,13 @@ fabric_modules = { @@ -519,14 +519,14 @@ fabric_modules = {
"srpt": SRPTFabricModule, "srpt": SRPTFabricModule,
"iscsi": ISCSIFabricModule, "iscsi": ISCSIFabricModule,
"loopback": LoopbackFabricModule, "loopback": LoopbackFabricModule,
- "qla2xxx": Qla2xxxFabricModule, - "qla2xxx": Qla2xxxFabricModule,
- "efct": EfctFabricModule,
- "sbp": SBPFabricModule, - "sbp": SBPFabricModule,
- "tcm_fc": FCoEFabricModule, - "tcm_fc": FCoEFabricModule,
+# "qla2xxx": Qla2xxxFabricModule, +# "qla2xxx": Qla2xxxFabricModule,
+# "efct": EfctFabricModule,
+# "sbp": SBPFabricModule, +# "sbp": SBPFabricModule,
+# "tcm_fc": FCoEFabricModule, +# "tcm_fc": FCoEFabricModule,
# "usb_gadget": USBGadgetFabricModule, # very rare, don't show # "usb_gadget": USBGadgetFabricModule, # very rare, don't show

View File

@ -1,22 +1,13 @@
diff --git a/rtslib/root.py b/rtslib/root.py diff --git a/rtslib/root.py b/rtslib/root.py
index 2c5cf43..34bc57d 100644 index ac40752..8e9724b 100644
--- a/rtslib/root.py --- a/rtslib/root.py
+++ b/rtslib/root.py +++ b/rtslib/root.py
@@ -166,21 +166,21 @@ class RTSRoot(CFSNode): @@ -166,19 +166,19 @@ class RTSRoot(CFSNode):
self._dbroot = self._default_dbroot self._dbroot = self._default_dbroot
return return
self._dbroot = fread(dbroot_path) self._dbroot = fread(dbroot_path)
- if self._dbroot != self._preferred_dbroot: - if self._dbroot != self._preferred_dbroot:
+ if self._dbroot != self._default_dbroot: + if self._dbroot != self._default_dbroot:
if len(FabricModule.list_registered_drivers()) != 0:
# Writing to dbroot_path after drivers have been registered will make the kernel emit this error:
# db_root: cannot be changed: target drivers registered
from warnings import warn
warn("Cannot set dbroot to {}. Target drivers have already been registered."
- .format(self._preferred_dbroot))
+ .format(self._default_dbroot))
return
try: try:
- fwrite(dbroot_path, self._preferred_dbroot+"\n") - fwrite(dbroot_path, self._preferred_dbroot+"\n")
+ fwrite(dbroot_path, self._default_dbroot+"\n") + fwrite(dbroot_path, self._default_dbroot+"\n")
@ -26,6 +17,13 @@ index 2c5cf43..34bc57d 100644
raise RTSLibError("Cannot set dbroot to {}. Please check if this directory exists." raise RTSLibError("Cannot set dbroot to {}. Please check if this directory exists."
- .format(self._preferred_dbroot)) - .format(self._preferred_dbroot))
+ .format(self._default_dbroot)) + .format(self._default_dbroot))
self._dbroot = fread(dbroot_path) else:
# Writing to dbroot_path after devices have been registered will make the kernel emit this error:
# db_root: cannot be changed: target devices registered
from warnings import warn
warn("Cannot set dbroot to {}. Target devices have already been registered."
- .format(self._preferred_dbroot))
+ .format(self._default_dbroot))
return
def _get_dbroot(self): self._dbroot = fread(dbroot_path)

View File

@ -1,76 +0,0 @@
From 75e73778dce1cb7a2816a936240ef75adfbd6ed9 Mon Sep 17 00:00:00 2001
From: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Date: Thu, 16 Jul 2020 17:21:28 +0530
Subject: [PATCH] rtslib: safely call shutil.copy()
Previously we had to replace shutil.copyfile() with shutil.copy(),
because we want to copy the file permissions to the destination file
along with the data.
It appears that shutil.copy() is opening the destination file with
wide access (0666) first, and then it starts copying the data and
at the end it is copying the permissions from source file to destination.
If we closely notice there appears a window between destination file
is opened vs permissions are set on the destination file, which could
allow a user to get the contents of the file when opening it at the
right time.
The behavior is a bit unsteady here, it is noticed that, when
saveconfig.json file exists, then on shutil.copy(), destination file is
opened and a mask 0600 is applied on the file, in case shutil.copy() had
to open a new destination saveconfig.json file, then mask 0644 is applied.
Thanks and Credits to 'Stefan Cornelius <scorneli@redhat.com>' for
reporting this, here is the strace he shared from RHEL-7/python-2.7.5
env:
Case 1: When /etc/target/saveconfig.json doesn't exist:
open("/etc/target/saveconfig.json.temp", O_RDONLY) = 3
open("/etc/target/saveconfig.json", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4
fstat(3, {st_mode=S_IFREG|0600, st_size=71, ...}) = 0
fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
[...]
chmod("/etc/target/saveconfig.json", 0600) = 0}")")}")
Case 2: When /etc/target/saveconfig.json already exist:
open("/etc/target/saveconfig.json.temp", O_RDONLY) = 3
open("/etc/target/saveconfig.json", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4
fstat(3, {st_mode=S_IFREG|0600, st_size=71, ...}) = 0
fstat(4, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
[...]
chmod("/etc/target/saveconfig.json", 0600) = 0}")")}")
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
---
rtslib/root.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/rtslib/root.py b/rtslib/root.py
index 2c5cf43..4ecc03c 100644
--- a/rtslib/root.py
+++ b/rtslib/root.py
@@ -476,8 +476,8 @@ class RTSRoot(CFSNode):
# prevent the file from being created if it exists due to a race
try:
fdesc = os.open(tmp_file, os.O_WRONLY | os.O_CREAT | os.O_EXCL, mode)
- finally:
- os.umask(umask_original)
+ except OSError:
+ raise ExecutionError("Could not open %s" % tmp_file)
with os.fdopen(fdesc, 'w') as f:
f.write(json.dumps(saveconf, sort_keys=True, indent=2))
@@ -488,6 +488,7 @@ class RTSRoot(CFSNode):
# copy along with permissions
shutil.copy(tmp_file, save_file)
+ os.umask(umask_original)
os.remove(tmp_file)
def restore_from_file(self, restore_file=None, clear_existing=True,
--
2.26.2

View File

@ -21,14 +21,13 @@ Name: python-rtslib
License: ASL 2.0 License: ASL 2.0
Group: System Environment/Libraries Group: System Environment/Libraries
Summary: API for Linux kernel LIO SCSI target Summary: API for Linux kernel LIO SCSI target
Version: 2.1.73 Version: 2.1.75
Release: 2%{?dist} Release: 4%{?dist}
URL: https://github.com/open-iscsi/%{oname} URL: https://github.com/open-iscsi/%{oname}
Source: %{url}/archive/v%{version}/%{oname}-%{version}.tar.gz Source: %{url}/archive/v%{version}/%{oname}-%{version}.tar.gz
Source1: target.service Source1: target.service
Patch0: 0001-Turn-off-unsupported-fabrics.patch Patch0: 0001-Turn-off-unsupported-fabrics.patch
Patch1: 0002-default_dbroot.patch Patch1: 0002-default_dbroot.patch
Patch2: 0003-rtslib-safely-call-shutil.copy.patch
BuildArch: noarch BuildArch: noarch
BuildRequires: systemd-units BuildRequires: systemd-units
Requires(post): systemd Requires(post): systemd
@ -103,7 +102,6 @@ on system restart.
%setup -q -n %{oname}-%{version} %setup -q -n %{oname}-%{version}
%patch0 -p1 %patch0 -p1
%patch1 -p1 %patch1 -p1
%patch2 -p1
%if %{with python3} %if %{with python3}
rm -rf %{py3dir} rm -rf %{py3dir}
@ -193,6 +191,22 @@ install -m 644 doc/saveconfig.json.5.gz %{buildroot}%{_mandir}/man5/
%endif # with python2 %endif # with python2
%changelog %changelog
* Wed Jun 15 2022 Maurizio Lombardi <mlombard@redhat.com> - 2.1.75-4
- Updates to the gating tests from mhoyer
* Wed Jun 15 2022 Maurizio Lombardi <mlombard@redhat.com> - 2.1.75-3
- Update the gating tests
* Wed Jun 15 2022 Maurizio Lombardi <mlombard@redhat.com> - 2.1.75-2
- Fix the gating tests
* Mon Jun 06 2022 Maurizio Lombardi <mlombard@redhat.com> - 2.1.75-1
- Update to the latest upstream version
* Mon Oct 26 2020 Maurizio Lombardi <mlombard@redhat.com> - 2.1.74-1
- Update to the latest upstream version
* Tue Jul 21 2020 Maurizio Lombardi <mlombard@redhat.com> - 2.1.73-2 * Tue Jul 21 2020 Maurizio Lombardi <mlombard@redhat.com> - 2.1.73-2
- Merge a fix to prevent a potential data leak when saving the config file - Merge a fix to prevent a potential data leak when saving the config file