- megaraid: Fix segfault on non-data commands (#577935)
This commit is contained in:
parent
5445ecdef8
commit
6eabefcf9f
33
smartmontools-5.40-megaraid.patch
Normal file
33
smartmontools-5.40-megaraid.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
diff -up smartmontools-5.39.1/os_linux.cpp.megaraid smartmontools-5.39.1/os_linux.cpp
|
||||||
|
--- smartmontools-5.39.1/os_linux.cpp.megaraid 2010-01-28 21:24:32.000000000 +0100
|
||||||
|
+++ smartmontools-5.39.1/os_linux.cpp 2010-11-15 12:58:56.648181400 +0100
|
||||||
|
@@ -1095,17 +1095,21 @@ bool linux_megaraid_device::megasas_cmd(
|
||||||
|
pthru->cdb_len = cdbLen;
|
||||||
|
pthru->timeout = 0;
|
||||||
|
pthru->flags = MFI_FRAME_DIR_READ;
|
||||||
|
- pthru->sge_count = 1;
|
||||||
|
- pthru->data_xfer_len = dataLen;
|
||||||
|
- pthru->sgl.sge32[0].phys_addr = (intptr_t)data;
|
||||||
|
- pthru->sgl.sge32[0].length = (uint32_t)dataLen;
|
||||||
|
+ if (dataLen > 0) {
|
||||||
|
+ pthru->sge_count = 1;
|
||||||
|
+ pthru->data_xfer_len = dataLen;
|
||||||
|
+ pthru->sgl.sge32[0].phys_addr = (intptr_t)data;
|
||||||
|
+ pthru->sgl.sge32[0].length = (uint32_t)dataLen;
|
||||||
|
+ }
|
||||||
|
memcpy(pthru->cdb, cdb, cdbLen);
|
||||||
|
|
||||||
|
uio.host_no = m_hba;
|
||||||
|
- uio.sge_count = 1;
|
||||||
|
- uio.sgl_off = offsetof(struct megasas_pthru_frame, sgl);
|
||||||
|
- uio.sgl[0].iov_base = data;
|
||||||
|
- uio.sgl[0].iov_len = dataLen;
|
||||||
|
+ if (dataLen > 0) {
|
||||||
|
+ uio.sge_count = 1;
|
||||||
|
+ uio.sgl_off = offsetof(struct megasas_pthru_frame, sgl);
|
||||||
|
+ uio.sgl[0].iov_base = data;
|
||||||
|
+ uio.sgl[0].iov_len = dataLen;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
rc = 0;
|
||||||
|
errno = 0;
|
@ -1,7 +1,7 @@
|
|||||||
Summary: Tools for monitoring SMART capable hard disks
|
Summary: Tools for monitoring SMART capable hard disks
|
||||||
Name: smartmontools
|
Name: smartmontools
|
||||||
Version: 5.40
|
Version: 5.40
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -13,6 +13,9 @@ Source2: smartmontools.sysconf
|
|||||||
#fedora/rhel specific
|
#fedora/rhel specific
|
||||||
Patch1: smartmontools-5.38-defaultconf.patch
|
Patch1: smartmontools-5.38-defaultconf.patch
|
||||||
|
|
||||||
|
#from upstream, for smartmontools <= 5.40
|
||||||
|
Patch2: smartmontools-5.40-megaraid.patch
|
||||||
|
|
||||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||||
Requires: fileutils mailx chkconfig initscripts
|
Requires: fileutils mailx chkconfig initscripts
|
||||||
BuildRequires: readline-devel ncurses-devel automake util-linux groff gettext
|
BuildRequires: readline-devel ncurses-devel automake util-linux groff gettext
|
||||||
@ -29,6 +32,8 @@ failure.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch1 -p1 -b .defaultconf
|
%patch1 -p1 -b .defaultconf
|
||||||
|
%patch2 -p1 -b .megaraid
|
||||||
|
|
||||||
# fix encoding
|
# fix encoding
|
||||||
for fe in AUTHORS CHANGELOG
|
for fe in AUTHORS CHANGELOG
|
||||||
do
|
do
|
||||||
@ -86,6 +91,9 @@ fi
|
|||||||
%{_datadir}/%{name}/drivedb.h
|
%{_datadir}/%{name}/drivedb.h
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Nov 15 2010 Michal Hlavinka <mhlavink@redhat.com> - 1:5.40-3
|
||||||
|
- megaraid: Fix segfault on non-data commands (#577935)
|
||||||
|
|
||||||
* Tue Nov 09 2010 Michal Hlavinka <mhlavink@redhat.com> - 1:5.40-2
|
* Tue Nov 09 2010 Michal Hlavinka <mhlavink@redhat.com> - 1:5.40-2
|
||||||
- don't forget to restart smartd service after update (#651211)
|
- don't forget to restart smartd service after update (#651211)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user