diff --git a/0013-fru-Fix-crashes-on-6-bit-ASCII-strings.patch b/0013-fru-Fix-crashes-on-6-bit-ASCII-strings.patch new file mode 100644 index 0000000000000000000000000000000000000000..fdf980e12591c3eb76f847383df81b6a4e54d277 --- /dev/null +++ b/0013-fru-Fix-crashes-on-6-bit-ASCII-strings.patch @@ -0,0 +1,33 @@ +From 57e7c4206f44a475123ec31386aa5cef732e85b4 Mon Sep 17 00:00:00 2001 +From: Alexander Amelkin +Date: Tue, 15 Sep 2020 16:49:20 +0300 +Subject: [PATCH] fru: Fix crashes on 6-bit ASCII strings + +Fix calculation of the buffer size for decoded 6-bit ASCII +strings. Previously the program could allocate too a short buffer +that caused buffer overflows and segmentation fault crashes on +certain FRU contents. + +Signed-off-by: Alexander Amelkin +--- + lib/ipmi_fru.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c +index 98bc984..a4cd8e8 100644 +--- a/lib/ipmi_fru.c ++++ b/lib/ipmi_fru.c +@@ -130,8 +130,8 @@ char * get_fru_area_str(uint8_t * data, uint32_t * offset) + size = (len*2); + break; + case 2: /* 10b: 6-bit ASCII */ +- /* 4 chars per group of 1-3 bytes */ +- size = ((((len+2)*4)/3) & ~3); ++ /* 4 chars per group of 1-3 bytes, round up to 4 bytes boundary */ ++ size = (len / 3 + 1) * 4; + break; + case 3: /* 11b: 8-bit ASCII */ + case 1: /* 01b: BCD plus */ +-- +2.31.1 + diff --git a/ipmitool-1.8.18-25.fc36.src.rpm b/ipmitool-1.8.18-25.fc36.src.rpm deleted file mode 100644 index 2d48079ba965ac35332e29331d503eed68ca142c..0000000000000000000000000000000000000000 Binary files a/ipmitool-1.8.18-25.fc36.src.rpm and /dev/null differ diff --git a/ipmitool.spec b/ipmitool.spec index 5610152ad58002dbe3b8ffe8a2258495811eb08a..fc93475bdb197ad79262a33271045aff19c6afcf 100644 --- a/ipmitool.spec +++ b/ipmitool.spec @@ -1,6 +1,6 @@ -%define anolis_release 1 -%global gitname IPMITOOL -%global gitversion 1_8_18 +%define anolis_release 2 +%global dir_name IPMITOOL +%global dir_version 1_8_18 Name: ipmitool Summary: Utility for IPMI control @@ -8,7 +8,7 @@ Version: 1.8.18 Release: %{anolis_release}%{?dist} License: BSD URL: https://github.com/ipmitool/ipmitool -Source0: %{url}/archive/refs/tags/%{gitname}_%{gitversion}.tar.gz#/%{name}-%{version}.tar.gz +Source0: %{url}/archive/refs/tags//%{name}-%{version}.tar.gz Source1: openipmi-ipmievd.sysconf Source2: ipmievd.service Source3: exchange-bmc-os-info.service @@ -28,12 +28,17 @@ Patch9: 0009-best-cipher.patch Patch10: 0010-pef-missing-newline.patch Patch11: 0011-expand-sensor-name-column.patch Patch12: 0012-CVE-2020-5208.patch +Patch13: 0013-fru-Fix-crashes-on-6-bit-ASCII-strings.patch -BuildRequires: openssl-devel readline-devel ncurses-devel +BuildRequires: openssl-devel +BuildRequires: readline-devel +BuildRequires: ncurses-devel %{?systemd_requires} BuildRequires: systemd # bootstrap -BuildRequires: automake autoconf libtool +BuildRequires: automake +BuildRequires: autoconf +BuildRequires: libtool Obsoletes: OpenIPMI-tools < 2.0.14-3 Provides: OpenIPMI-tools = 2.0.14-3 @@ -55,43 +60,51 @@ setting LAN configuration, and chassis power control. %package -n ipmievd +Summary: IPMI event daemon for sending events to syslog Requires: ipmitool %{?systemd_requires} BuildRequires: systemd -Summary: IPMI event daemon for sending events to syslog + %description -n ipmievd ipmievd is a daemon which will listen for events from the BMC that are being sent to the SEL and also log those messages to syslog. %package -n bmc-snmp-proxy +Summary: Reconfigure SNMP to include host SNMP agent within BMC Requires: net-snmp Requires: exchange-bmc-os-info BuildArch: noarch -Summary: Reconfigure SNMP to include host SNMP agent within BMC + %description -n bmc-snmp-proxy Given a host with BMC, this package would extend system configuration of net-snmp to include redirections to BMC based SNMP. %package -n exchange-bmc-os-info +Summary: Let OS and BMC exchange info Requires: hostname Requires: ipmitool -BuildArch: noarch %{?systemd_requires} BuildRequires: systemd BuildRequires: make - -Summary: Let OS and BMC exchange info +BuildArch: noarch %description -n exchange-bmc-os-info Given a host with BMC, this package would pass the hostname & OS information to the BMC and also capture the BMC ip info for the host OS to use. +%package doc +Summary: Documentation files for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch + +%description doc +The %{name}-doc package contains documentation files for %{name} %prep -%autosetup -n %{name}-%{gitname}_%{gitversion} -p1 +%autosetup -n %{name}-%{dir_name}_%{dir_version} -p1 for f in AUTHORS ChangeLog; do iconv -f iso-8859-1 -t utf8 < ${f} > ${f}.utf8 @@ -133,6 +146,10 @@ install -Dm 644 contrib/bmc-snmp-proxy.sysconf %{buildroot}%{_sysconfdir}/syscon install -Dm 644 contrib/bmc-snmp-proxy.service %{buildroot}%{_unitdir}/bmc-snmp-proxy.service install -Dm 755 contrib/bmc-snmp-proxy %{buildroot}%{_libexecdir}/bmc-snmp-proxy +rm -rf %{buildroot}/%{_datadir}/doc/ipmitool + +%generate_compatibility_deps + %post -n ipmievd %systemd_post ipmievd.service @@ -163,15 +180,18 @@ install -Dm 755 contrib/bmc-snmp-proxy %{buildroot}%{_libexecdir}/bmc-sn /bin/systemctl try-restart ipmievd.service >/dev/null 2>&1 || : %files +%dir %{abidir} %{_bindir}/ipmitool +%{abidir}/ipmitool-option.list %{_mandir}/man1/ipmitool.1* -%doc %{_datadir}/doc/ipmitool %{_datadir}/ipmitool +%license COPYING %files -n ipmievd %config(noreplace) %{_sysconfdir}/sysconfig/ipmievd %{_unitdir}/ipmievd.service %{_sbindir}/ipmievd +%{abidir}/ipmievd-option.list %{_mandir}/man8/ipmievd.8* %files -n exchange-bmc-os-info @@ -185,6 +205,12 @@ install -Dm 755 contrib/bmc-snmp-proxy %{buildroot}%{_libexecdir}/bmc-sn %{_unitdir}/bmc-snmp-proxy.service %{_libexecdir}/bmc-snmp-proxy +%files doc +%doc AUTHORS ChangeLog README + %changelog +* Fri Dec 02 2022 Xuchun Shang - 1.8.18-2 +- Add a patch and doc package + * Fri Apr 15 2022 yuanhui - 1.8.18-1 - Init ipmitool for anolis os 23