Compare commits
No commits in common. "c9" and "c8" have entirely different histories.
|
@ -1 +1 @@
|
||||||
SOURCES/ipmitool-1.8.18.tar.gz
|
SOURCES/ipmitool-1.8.18.tar.bz2
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
ebb7c4387c11130ea874531beedba774f6431839 SOURCES/ipmitool-1.8.18.tar.gz
|
ff4781bb78f264d44fa4bf1767f268d4079d87ba SOURCES/ipmitool-1.8.18.tar.bz2
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
From 95f666fa10c32233ee202d8b99d05b5e13528a25 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Vaclav Dolezal <vdolezal@redhat.com>
|
|
||||||
Date: Thu, 23 Jan 2020 11:26:32 +0100
|
|
||||||
Subject: [PATCH] hpmfwupg: move variable definition to .c file
|
|
||||||
|
|
||||||
Signed-off-by: Vaclav Dolezal <vdolezal@redhat.com>
|
|
||||||
---
|
|
||||||
include/ipmitool/ipmi_hpmfwupg.h | 2 +-
|
|
||||||
lib/ipmi_hpmfwupg.c | 2 ++
|
|
||||||
2 files changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/include/ipmitool/ipmi_hpmfwupg.h b/include/ipmitool/ipmi_hpmfwupg.h
|
|
||||||
index de65292..07f597b 100644
|
|
||||||
--- a/include/ipmitool/ipmi_hpmfwupg.h
|
|
||||||
+++ b/include/ipmitool/ipmi_hpmfwupg.h
|
|
||||||
@@ -800,7 +800,7 @@ typedef struct _VERSIONINFO {
|
|
||||||
char descString[HPMFWUPG_DESC_STRING_LENGTH + 1];
|
|
||||||
}VERSIONINFO, *PVERSIONINFO;
|
|
||||||
|
|
||||||
-VERSIONINFO gVersionInfo[HPMFWUPG_COMPONENT_ID_MAX];
|
|
||||||
+extern VERSIONINFO gVersionInfo[HPMFWUPG_COMPONENT_ID_MAX];
|
|
||||||
|
|
||||||
#define TARGET_VER (0x01)
|
|
||||||
#define ROLLBACK_VER (0x02)
|
|
||||||
diff --git a/lib/ipmi_hpmfwupg.c b/lib/ipmi_hpmfwupg.c
|
|
||||||
index bbcffc0..d7cdcd6 100644
|
|
||||||
--- a/lib/ipmi_hpmfwupg.c
|
|
||||||
+++ b/lib/ipmi_hpmfwupg.c
|
|
||||||
@@ -58,6 +58,8 @@ ipmi_intf_get_max_request_data_size(struct ipmi_intf * intf);
|
|
||||||
|
|
||||||
extern int verbose;
|
|
||||||
|
|
||||||
+VERSIONINFO gVersionInfo[HPMFWUPG_COMPONENT_ID_MAX];
|
|
||||||
+
|
|
||||||
int HpmfwupgUpgrade(struct ipmi_intf *intf, char *imageFilename,
|
|
||||||
int activate, int, int);
|
|
||||||
int HpmfwupgValidateImageIntegrity(struct HpmfwupgUpgradeCtx *pFwupgCtx);
|
|
||||||
--
|
|
||||||
2.20.1
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From f2df2aa5a010544d53589a5b048677406eb40ee8 Mon Sep 17 00:00:00 2001
|
From 260293c0ee5a268bc7fc1483e5304546745122a6 Mon Sep 17 00:00:00 2001
|
||||||
From: Vernon Mauery <vernon.mauery@intel.com>
|
From: Vernon Mauery <vernon.mauery@intel.com>
|
||||||
Date: Mon, 9 Apr 2018 12:28:57 -0700
|
Date: Mon, 9 Apr 2018 12:28:57 -0700
|
||||||
Subject: [PATCH] lanplus: Auto-select 'best' cipher suite available
|
Subject: [PATCH] lanplus: Auto-select 'best' cipher suite available
|
|
@ -1,4 +1,4 @@
|
||||||
From b3e74778c65ba3ffc8a9b3133c87588ee5d18a74 Mon Sep 17 00:00:00 2001
|
From a1732e68bce148255785e67eb035520729274d86 Mon Sep 17 00:00:00 2001
|
||||||
From: Chrostoper Ertl <chertl@microsoft.com>
|
From: Chrostoper Ertl <chertl@microsoft.com>
|
||||||
Date: Thu, 28 Nov 2019 16:33:59 +0000
|
Date: Thu, 28 Nov 2019 16:33:59 +0000
|
||||||
Subject: [PATCH] Fixes for CVE-2020-5208
|
Subject: [PATCH] Fixes for CVE-2020-5208
|
||||||
|
@ -13,17 +13,20 @@ pick 41d7026946fafbd4d1ec0bcaca3ea30a6e8eed22 session: Fix buffer overflow in ip
|
||||||
pick 9452be87181a6e83cfcc768b3ed8321763db50e4 channel: Fix buffer overflow
|
pick 9452be87181a6e83cfcc768b3ed8321763db50e4 channel: Fix buffer overflow
|
||||||
pick d45572d71e70840e0d4c50bf48218492b79c1a10 lanp: Fix buffer overflows in get_lan_param_select
|
pick d45572d71e70840e0d4c50bf48218492b79c1a10 lanp: Fix buffer overflows in get_lan_param_select
|
||||||
pick 7ccea283dd62a05a320c1921e3d8d71a87772637 fru, sdr: Fix id_string buffer overflows
|
pick 7ccea283dd62a05a320c1921e3d8d71a87772637 fru, sdr: Fix id_string buffer overflows
|
||||||
|
|
||||||
|
[vdolezal@redhat.com]: fixed memleak of `spd_data` in
|
||||||
|
lib/dimm_spd.c:ipmi_spd_print_fru()
|
||||||
---
|
---
|
||||||
lib/dimm_spd.c | 9 ++++++++-
|
lib/dimm_spd.c | 11 ++++++++++-
|
||||||
lib/ipmi_channel.c | 5 ++++-
|
lib/ipmi_channel.c | 5 ++++-
|
||||||
lib/ipmi_fru.c | 35 ++++++++++++++++++++++++++++++++---
|
lib/ipmi_fru.c | 35 ++++++++++++++++++++++++++++++++---
|
||||||
lib/ipmi_lanp.c | 14 +++++++-------
|
lib/ipmi_lanp.c | 14 +++++++-------
|
||||||
lib/ipmi_sdr.c | 40 ++++++++++++++++++++++++----------------
|
lib/ipmi_sdr.c | 40 ++++++++++++++++++++++++----------------
|
||||||
lib/ipmi_session.c | 12 ++++++++----
|
lib/ipmi_session.c | 12 ++++++++----
|
||||||
6 files changed, 83 insertions(+), 32 deletions(-)
|
6 files changed, 85 insertions(+), 32 deletions(-)
|
||||||
|
|
||||||
diff --git a/lib/dimm_spd.c b/lib/dimm_spd.c
|
diff --git a/lib/dimm_spd.c b/lib/dimm_spd.c
|
||||||
index 41e30db..68f3b4f 100644
|
index 41e30db..ebcc94c 100644
|
||||||
--- a/lib/dimm_spd.c
|
--- a/lib/dimm_spd.c
|
||||||
+++ b/lib/dimm_spd.c
|
+++ b/lib/dimm_spd.c
|
||||||
@@ -1621,7 +1621,7 @@ ipmi_spd_print_fru(struct ipmi_intf * intf, uint8_t id)
|
@@ -1621,7 +1621,7 @@ ipmi_spd_print_fru(struct ipmi_intf * intf, uint8_t id)
|
||||||
|
@ -35,7 +38,7 @@ index 41e30db..68f3b4f 100644
|
||||||
|
|
||||||
msg_data[0] = id;
|
msg_data[0] = id;
|
||||||
|
|
||||||
@@ -1697,6 +1697,13 @@ ipmi_spd_print_fru(struct ipmi_intf * intf, uint8_t id)
|
@@ -1697,6 +1697,15 @@ ipmi_spd_print_fru(struct ipmi_intf * intf, uint8_t id)
|
||||||
}
|
}
|
||||||
|
|
||||||
len = rsp->data[0];
|
len = rsp->data[0];
|
||||||
|
@ -44,6 +47,8 @@ index 41e30db..68f3b4f 100644
|
||||||
+ || len > fru.size - offset)
|
+ || len > fru.size - offset)
|
||||||
+ {
|
+ {
|
||||||
+ printf(" Not enough buffer size");
|
+ printf(" Not enough buffer size");
|
||||||
|
+ free(spd_data);
|
||||||
|
+ spd_data = NULL;
|
||||||
+ return -1;
|
+ return -1;
|
||||||
+ }
|
+ }
|
||||||
memcpy(&spd_data[offset], rsp->data + 1, len);
|
memcpy(&spd_data[offset], rsp->data + 1, len);
|
||||||
|
@ -248,7 +253,7 @@ index 65d881b..022c7f1 100644
|
||||||
if (str2uchar(argv[1], &data[3]) != 0) {
|
if (str2uchar(argv[1], &data[3]) != 0) {
|
||||||
lprintf(LOG_ERR, "Invalid retry: %s", argv[1]);
|
lprintf(LOG_ERR, "Invalid retry: %s", argv[1]);
|
||||||
diff --git a/lib/ipmi_sdr.c b/lib/ipmi_sdr.c
|
diff --git a/lib/ipmi_sdr.c b/lib/ipmi_sdr.c
|
||||||
index 0f6faab..9890132 100644
|
index fd2c02d..01d81f7 100644
|
||||||
--- a/lib/ipmi_sdr.c
|
--- a/lib/ipmi_sdr.c
|
||||||
+++ b/lib/ipmi_sdr.c
|
+++ b/lib/ipmi_sdr.c
|
||||||
@@ -2086,7 +2086,7 @@ ipmi_sdr_print_sensor_eventonly(struct ipmi_intf *intf,
|
@@ -2086,7 +2086,7 @@ ipmi_sdr_print_sensor_eventonly(struct ipmi_intf *intf,
|
|
@ -1,57 +0,0 @@
|
||||||
From 57b57b27fe2c17e3030c41ee5566af36ccd33941 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Vaclav Dolezal <vdolezal@redhat.com>
|
|
||||||
Date: Thu, 30 Jan 2020 16:18:37 +0100
|
|
||||||
Subject: [PATCH] Expand column with name in ipmitool sdr/sensor output
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/ipmi_sdr.c | 4 ++--
|
|
||||||
lib/ipmi_sensor.c | 4 ++--
|
|
||||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/ipmi_sdr.c b/lib/ipmi_sdr.c
|
|
||||||
index fd2c02d..0f6faab 100644
|
|
||||||
--- a/lib/ipmi_sdr.c
|
|
||||||
+++ b/lib/ipmi_sdr.c
|
|
||||||
@@ -1619,7 +1619,7 @@ ipmi_sdr_print_sensor_fc(struct ipmi_intf *intf,
|
|
||||||
/*
|
|
||||||
* print sensor name, reading, state
|
|
||||||
*/
|
|
||||||
- printf("%-16s | ", sr->s_id);
|
|
||||||
+ printf("%-24s | ", sr->s_id);
|
|
||||||
|
|
||||||
memset(sval, 0, sizeof (sval));
|
|
||||||
|
|
||||||
@@ -1657,7 +1657,7 @@ ipmi_sdr_print_sensor_fc(struct ipmi_intf *intf,
|
|
||||||
/*
|
|
||||||
* print sensor name, number, state, entity, reading
|
|
||||||
*/
|
|
||||||
- printf("%-16s | %02Xh | ",
|
|
||||||
+ printf("%-24s | %02Xh | ",
|
|
||||||
sr->s_id, sensor->keys.sensor_num);
|
|
||||||
|
|
||||||
if (IS_THRESHOLD_SENSOR(sensor)) {
|
|
||||||
diff --git a/lib/ipmi_sensor.c b/lib/ipmi_sensor.c
|
|
||||||
index a0b7eb8..7328508 100644
|
|
||||||
--- a/lib/ipmi_sensor.c
|
|
||||||
+++ b/lib/ipmi_sensor.c
|
|
||||||
@@ -175,7 +175,7 @@ ipmi_sensor_print_fc_discrete(struct ipmi_intf *intf,
|
|
||||||
/* output format
|
|
||||||
* id value units status thresholds....
|
|
||||||
*/
|
|
||||||
- printf("%-16s ", sr->s_id);
|
|
||||||
+ printf("%-24s ", sr->s_id);
|
|
||||||
if (sr->s_reading_valid) {
|
|
||||||
if (sr->s_has_analog_value) {
|
|
||||||
/* don't show discrete component */
|
|
||||||
@@ -276,7 +276,7 @@ ipmi_sensor_print_fc_threshold(struct ipmi_intf *intf,
|
|
||||||
/* output format
|
|
||||||
* id value units status thresholds....
|
|
||||||
*/
|
|
||||||
- printf("%-16s ", sr->s_id);
|
|
||||||
+ printf("%-24s ", sr->s_id);
|
|
||||||
if (sr->s_reading_valid) {
|
|
||||||
if (sr->s_has_analog_value)
|
|
||||||
printf("| %-10.3f | %-10s | %-6s",
|
|
||||||
--
|
|
||||||
2.20.1
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From f65ea137f0d03f883219a791a49cf8ea7e16776a Mon Sep 17 00:00:00 2001
|
From a365e624fff752bfe79438f6c177399492ccfdde Mon Sep 17 00:00:00 2001
|
||||||
From: Vaclav Dolezal <vdolezal@redhat.com>
|
From: Vaclav Dolezal <vdolezal@redhat.com>
|
||||||
Date: Fri, 1 Mar 2019 14:46:12 +0100
|
Date: Fri, 1 Mar 2019 14:46:12 +0100
|
||||||
Subject: [PATCH] Fix "ipmitool pef {status,info}" not printing final newline
|
Subject: [PATCH] Fix "ipmitool pef {status,info}" not printing final newline
|
||||||
|
@ -29,5 +29,5 @@ index bbf25f2..4be749e 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.20.1
|
2.25.4
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
From f222df3081d965051be76b85ea52b4aff222edf1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "William A. Kennington III" <wak@google.com>
|
|
||||||
Date: Fri, 15 Jun 2018 14:47:12 -0700
|
|
||||||
Subject: [PATCH] plugins/open: Fix for interrupted select
|
|
||||||
|
|
||||||
The select syscall can be interrupted for signals like SIGPROF. The IPMI
|
|
||||||
command sent will still be outstanding but the send_command will return
|
|
||||||
an error. When the next command is sent it will get the completion for
|
|
||||||
the previous command and has the tendency to break state of end users.
|
|
||||||
|
|
||||||
Signed-off-by: William A. Kennington III <wak@google.com>
|
|
||||||
---
|
|
||||||
src/plugins/open/open.c | 4 +++-
|
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/open/open.c b/src/plugins/open/open.c
|
|
||||||
index 5beeac7..59b736d 100644
|
|
||||||
--- a/src/plugins/open/open.c
|
|
||||||
+++ b/src/plugins/open/open.c
|
|
||||||
@@ -335,7 +335,9 @@ ipmi_openipmi_send_cmd(struct ipmi_intf * intf, struct ipmi_rq * req)
|
|
||||||
FD_SET(intf->fd, &rset);
|
|
||||||
read_timeout.tv_sec = IPMI_OPENIPMI_READ_TIMEOUT;
|
|
||||||
read_timeout.tv_usec = 0;
|
|
||||||
- retval = select(intf->fd+1, &rset, NULL, NULL, &read_timeout);
|
|
||||||
+ do {
|
|
||||||
+ retval = select(intf->fd+1, &rset, NULL, NULL, &read_timeout);
|
|
||||||
+ } while (retval < 0 && errno == EINTR);
|
|
||||||
if (retval < 0) {
|
|
||||||
lperror(LOG_ERR, "I/O Error");
|
|
||||||
if (data != NULL) {
|
|
||||||
--
|
|
||||||
2.40.1
|
|
||||||
|
|
|
@ -1,98 +0,0 @@
|
||||||
diff -up ipmitool-1.8.18/src/plugins/open/open.c.checking-received ipmitool-1.8.18/src/plugins/open/open.c
|
|
||||||
--- ipmitool-1.8.18/src/plugins/open/open.c.checking-received 2023-07-25 17:14:22.112985375 +0200
|
|
||||||
+++ ipmitool-1.8.18/src/plugins/open/open.c 2023-07-25 17:14:22.115985324 +0200
|
|
||||||
@@ -336,48 +336,61 @@ ipmi_openipmi_send_cmd(struct ipmi_intf
|
|
||||||
read_timeout.tv_sec = IPMI_OPENIPMI_READ_TIMEOUT;
|
|
||||||
read_timeout.tv_usec = 0;
|
|
||||||
do {
|
|
||||||
- retval = select(intf->fd+1, &rset, NULL, NULL, &read_timeout);
|
|
||||||
- } while (retval < 0 && errno == EINTR);
|
|
||||||
- if (retval < 0) {
|
|
||||||
- lperror(LOG_ERR, "I/O Error");
|
|
||||||
- if (data != NULL) {
|
|
||||||
- free(data);
|
|
||||||
+ do {
|
|
||||||
+ retval = select(intf->fd + 1, &rset, NULL, NULL, &read_timeout);
|
|
||||||
+ } while (retval < 0 && errno == EINTR);
|
|
||||||
+ if (retval < 0) {
|
|
||||||
+ lperror(LOG_ERR, "I/O Error");
|
|
||||||
+ if (data != NULL) {
|
|
||||||
+ free(data);
|
|
||||||
data = NULL;
|
|
||||||
- }
|
|
||||||
- return NULL;
|
|
||||||
- } else if (retval == 0) {
|
|
||||||
- lprintf(LOG_ERR, "No data available");
|
|
||||||
- if (data != NULL) {
|
|
||||||
- free(data);
|
|
||||||
- data = NULL;
|
|
||||||
- }
|
|
||||||
- return NULL;
|
|
||||||
- }
|
|
||||||
- if (FD_ISSET(intf->fd, &rset) == 0) {
|
|
||||||
- lprintf(LOG_ERR, "No data available");
|
|
||||||
- if (data != NULL) {
|
|
||||||
- free(data);
|
|
||||||
+ }
|
|
||||||
+ return NULL;
|
|
||||||
+ } else if (retval == 0) {
|
|
||||||
+ lprintf(LOG_ERR, "No data available");
|
|
||||||
+ if (data != NULL) {
|
|
||||||
+ free(data);
|
|
||||||
data = NULL;
|
|
||||||
+ }
|
|
||||||
+ return NULL;
|
|
||||||
}
|
|
||||||
- return NULL;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- recv.addr = (unsigned char *) &addr;
|
|
||||||
- recv.addr_len = sizeof(addr);
|
|
||||||
- recv.msg.data = rsp.data;
|
|
||||||
- recv.msg.data_len = sizeof(rsp.data);
|
|
||||||
-
|
|
||||||
- /* get data */
|
|
||||||
- if (ioctl(intf->fd, IPMICTL_RECEIVE_MSG_TRUNC, &recv) < 0) {
|
|
||||||
- lperror(LOG_ERR, "Error receiving message");
|
|
||||||
- if (errno != EMSGSIZE) {
|
|
||||||
+ if (FD_ISSET(intf->fd, &rset) == 0) {
|
|
||||||
+ lprintf(LOG_ERR, "No data available");
|
|
||||||
if (data != NULL) {
|
|
||||||
free(data);
|
|
||||||
data = NULL;
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
- }
|
|
||||||
+
|
|
||||||
+ recv.addr = (unsigned char *)&addr;
|
|
||||||
+ recv.addr_len = sizeof(addr);
|
|
||||||
+ recv.msg.data = rsp.data;
|
|
||||||
+ recv.msg.data_len = sizeof(rsp.data);
|
|
||||||
+
|
|
||||||
+ /* get data */
|
|
||||||
+ if (ioctl(intf->fd, IPMICTL_RECEIVE_MSG_TRUNC, &recv) < 0) {
|
|
||||||
+ lperror(LOG_ERR, "Error receiving message");
|
|
||||||
+ if (errno != EMSGSIZE) {
|
|
||||||
+ if (data != NULL) {
|
|
||||||
+ free(data);
|
|
||||||
+ data = NULL;
|
|
||||||
+ }
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* If the message received wasn't expected, try to grab the
|
|
||||||
+ * next message until it's out of messages. -EAGAIN is
|
|
||||||
+ * returned if the list empty, but basically if it returns a
|
|
||||||
+ * message, check if it's alright.
|
|
||||||
+ */
|
|
||||||
+ if (_req.msgid != recv.msgid) {
|
|
||||||
+ lprintf(LOG_NOTICE,
|
|
||||||
+ "Received a response with unexpected ID %ld vs. %ld",
|
|
||||||
+ recv.msgid, _req.msgid);
|
|
||||||
+ }
|
|
||||||
+ } while (_req.msgid != recv.msgid);
|
|
||||||
|
|
||||||
if (verbose > 4) {
|
|
||||||
fprintf(stderr, "Got message:");
|
|
|
@ -1,36 +0,0 @@
|
||||||
Description: Add IANA ID for NVIDIA hardware
|
|
||||||
Add the NVIDIA IANA ID to the hardcoded list used in ipmitool <= 1.8.18.
|
|
||||||
After upstream commit "9d41136 ID:491 - Fetch vendor IDs from IANA", ipmitool
|
|
||||||
generates a list of vendor IDs dynamically at build time, so we can drop this
|
|
||||||
patch in future releases.
|
|
||||||
Author: dann frazier <dannf@debian.org>
|
|
||||||
Origin: backport
|
|
||||||
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=903616
|
|
||||||
Forwarded: not-needed
|
|
||||||
Last-Update: 2018-07-11
|
|
||||||
---
|
|
||||||
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
|
||||||
Index: ipmitool-1.8.18/include/ipmitool/ipmi.h
|
|
||||||
===================================================================
|
|
||||||
--- ipmitool-1.8.18.orig/include/ipmitool/ipmi.h
|
|
||||||
+++ ipmitool-1.8.18/include/ipmitool/ipmi.h
|
|
||||||
@@ -279,6 +279,7 @@ typedef enum IPMI_OEM {
|
|
||||||
/* 4769 for [IBM Corporation] */
|
|
||||||
IPMI_OEM_IBM_4769 = 4769,
|
|
||||||
IPMI_OEM_MAGNUM = 5593,
|
|
||||||
+ IPMI_OEM_NVIDIA = 5703,
|
|
||||||
IPMI_OEM_TYAN = 6653,
|
|
||||||
IPMI_OEM_QUANTA = 7244,
|
|
||||||
IPMI_OEM_NEWISYS = 9237,
|
|
||||||
Index: ipmitool-1.8.18/lib/ipmi_strings.c
|
|
||||||
===================================================================
|
|
||||||
--- ipmitool-1.8.18.orig/lib/ipmi_strings.c
|
|
||||||
+++ ipmitool-1.8.18/lib/ipmi_strings.c
|
|
||||||
@@ -96,6 +96,7 @@ const struct valstr ipmi_oem_info[] = {
|
|
||||||
{ IPMI_OEM_IBM_4769, "IBM Corporation" },
|
|
||||||
{ IPMI_OEM_IBM_20301, "IBM eServer X" },
|
|
||||||
{ IPMI_OEM_ADLINK_24339, "ADLINK Technology Inc." },
|
|
||||||
+ { IPMI_OEM_NVIDIA, "NVIDIA Corporation" },
|
|
||||||
{ 0xffff , NULL },
|
|
||||||
};
|
|
||||||
|
|
|
@ -1,232 +0,0 @@
|
||||||
From 3e0ecc5edcccc85654784d0888dbeb2f116204e0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Patrick Venture <venture@google.com>
|
|
||||||
Date: Thu, 22 Nov 2018 15:40:24 -0800
|
|
||||||
Subject: [PATCH] move static objects to source file
|
|
||||||
|
|
||||||
Move static objects declared in headers to the source files where
|
|
||||||
they're used.
|
|
||||||
|
|
||||||
Partially resolves ipmitool/ipmitool#13
|
|
||||||
|
|
||||||
Signed-off-by: Patrick Venture <venture@google.com>
|
|
||||||
---
|
|
||||||
include/ipmitool/ipmi_sdr.h | 43 -----------
|
|
||||||
lib/ipmi_sdr.c | 146 ++++++++++++++++++++++++++++++++++++
|
|
||||||
2 files changed, 146 insertions(+), 43 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/include/ipmitool/ipmi_sdr.h b/include/ipmitool/ipmi_sdr.h
|
|
||||||
index 9001e59..5e6afd3 100644
|
|
||||||
--- a/include/ipmitool/ipmi_sdr.h
|
|
||||||
+++ b/include/ipmitool/ipmi_sdr.h
|
|
||||||
|
|
||||||
@@ -773,50 +773,7 @@ struct sdr_record_list {
|
|
||||||
#pragma pack(0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-
|
|
||||||
-/* unit description codes (IPMI v1.5 section 37.16) */
|
|
||||||
-#define UNIT_MAX 0x90
|
|
||||||
-static const char *unit_desc[] __attribute__ ((unused)) = {
|
|
||||||
-"unspecified",
|
|
||||||
- "degrees C", "degrees F", "degrees K",
|
|
||||||
- "Volts", "Amps", "Watts", "Joules",
|
|
||||||
- "Coulombs", "VA", "Nits",
|
|
||||||
- "lumen", "lux", "Candela",
|
|
||||||
- "kPa", "PSI", "Newton",
|
|
||||||
- "CFM", "RPM", "Hz",
|
|
||||||
- "microsecond", "millisecond", "second", "minute", "hour",
|
|
||||||
- "day", "week", "mil", "inches", "feet", "cu in", "cu feet",
|
|
||||||
- "mm", "cm", "m", "cu cm", "cu m", "liters", "fluid ounce",
|
|
||||||
- "radians", "steradians", "revolutions", "cycles",
|
|
||||||
- "gravities", "ounce", "pound", "ft-lb", "oz-in", "gauss",
|
|
||||||
- "gilberts", "henry", "millihenry", "farad", "microfarad",
|
|
||||||
- "ohms", "siemens", "mole", "becquerel", "PPM", "reserved",
|
|
||||||
- "Decibels", "DbA", "DbC", "gray", "sievert",
|
|
||||||
- "color temp deg K", "bit", "kilobit", "megabit", "gigabit",
|
|
||||||
- "byte", "kilobyte", "megabyte", "gigabyte", "word", "dword",
|
|
||||||
- "qword", "line", "hit", "miss", "retry", "reset",
|
|
||||||
- "overflow", "underrun", "collision", "packets", "messages",
|
|
||||||
- "characters", "error", "correctable error", "uncorrectable error",};
|
|
||||||
-
|
|
||||||
-/* sensor type codes (IPMI v1.5 table 36.3)
|
|
||||||
- / Updated to v2.0 Table 42-3, Sensor Type Codes */
|
|
||||||
#define SENSOR_TYPE_MAX 0x2C
|
|
||||||
-static const char *sensor_type_desc[] __attribute__ ((unused)) = {
|
|
||||||
-"reserved",
|
|
||||||
- "Temperature", "Voltage", "Current", "Fan",
|
|
||||||
- "Physical Security", "Platform Security", "Processor",
|
|
||||||
- "Power Supply", "Power Unit", "Cooling Device", "Other",
|
|
||||||
- "Memory", "Drive Slot / Bay", "POST Memory Resize",
|
|
||||||
- "System Firmwares", "Event Logging Disabled", "Watchdog1",
|
|
||||||
- "System Event", "Critical Interrupt", "Button",
|
|
||||||
- "Module / Board", "Microcontroller", "Add-in Card",
|
|
||||||
- "Chassis", "Chip Set", "Other FRU", "Cable / Interconnect",
|
|
||||||
- "Terminator", "System Boot Initiated", "Boot Error",
|
|
||||||
- "OS Boot", "OS Critical Stop", "Slot / Connector",
|
|
||||||
- "System ACPI Power State", "Watchdog2", "Platform Alert",
|
|
||||||
- "Entity Presence", "Monitor ASIC", "LAN",
|
|
||||||
- "Management Subsys Health", "Battery", "Session Audit",
|
|
||||||
- "Version Change", "FRU State" };
|
|
||||||
|
|
||||||
struct sensor_reading {
|
|
||||||
char s_id[33]; /* name of the sensor */
|
|
||||||
diff --git a/lib/ipmi_sdr.c b/lib/ipmi_sdr.c
|
|
||||||
index d51c174..eb40b36 100644
|
|
||||||
--- a/lib/ipmi_sdr.c
|
|
||||||
+++ b/lib/ipmi_sdr.c
|
|
||||||
@@ -68,6 +68,152 @@ static struct sdr_record_list *sdr_list_head = NULL;
|
|
||||||
static struct sdr_record_list *sdr_list_tail = NULL;
|
|
||||||
static struct ipmi_sdr_iterator *sdr_list_itr = NULL;
|
|
||||||
|
|
||||||
+/* unit description codes (IPMI v1.5 section 37.16) */
|
|
||||||
+#define UNIT_MAX 0x90
|
|
||||||
+static const char *unit_desc[] = {
|
|
||||||
+ "unspecified",
|
|
||||||
+ "degrees C",
|
|
||||||
+ "degrees F",
|
|
||||||
+ "degrees K",
|
|
||||||
+ "Volts",
|
|
||||||
+ "Amps",
|
|
||||||
+ "Watts",
|
|
||||||
+ "Joules",
|
|
||||||
+ "Coulombs",
|
|
||||||
+ "VA",
|
|
||||||
+ "Nits",
|
|
||||||
+ "lumen",
|
|
||||||
+ "lux",
|
|
||||||
+ "Candela",
|
|
||||||
+ "kPa",
|
|
||||||
+ "PSI",
|
|
||||||
+ "Newton",
|
|
||||||
+ "CFM",
|
|
||||||
+ "RPM",
|
|
||||||
+ "Hz",
|
|
||||||
+ "microsecond",
|
|
||||||
+ "millisecond",
|
|
||||||
+ "second",
|
|
||||||
+ "minute",
|
|
||||||
+ "hour",
|
|
||||||
+ "day",
|
|
||||||
+ "week",
|
|
||||||
+ "mil",
|
|
||||||
+ "inches",
|
|
||||||
+ "feet",
|
|
||||||
+ "cu in",
|
|
||||||
+ "cu feet",
|
|
||||||
+ "mm",
|
|
||||||
+ "cm",
|
|
||||||
+ "m",
|
|
||||||
+ "cu cm",
|
|
||||||
+ "cu m",
|
|
||||||
+ "liters",
|
|
||||||
+ "fluid ounce",
|
|
||||||
+ "radians",
|
|
||||||
+ "steradians",
|
|
||||||
+ "revolutions",
|
|
||||||
+ "cycles",
|
|
||||||
+ "gravities",
|
|
||||||
+ "ounce",
|
|
||||||
+ "pound",
|
|
||||||
+ "ft-lb",
|
|
||||||
+ "oz-in",
|
|
||||||
+ "gauss",
|
|
||||||
+ "gilberts",
|
|
||||||
+ "henry",
|
|
||||||
+ "millihenry",
|
|
||||||
+ "farad",
|
|
||||||
+ "microfarad",
|
|
||||||
+ "ohms",
|
|
||||||
+ "siemens",
|
|
||||||
+ "mole",
|
|
||||||
+ "becquerel",
|
|
||||||
+ "PPM",
|
|
||||||
+ "reserved",
|
|
||||||
+ "Decibels",
|
|
||||||
+ "DbA",
|
|
||||||
+ "DbC",
|
|
||||||
+ "gray",
|
|
||||||
+ "sievert",
|
|
||||||
+ "color temp deg K",
|
|
||||||
+ "bit",
|
|
||||||
+ "kilobit",
|
|
||||||
+ "megabit",
|
|
||||||
+ "gigabit",
|
|
||||||
+ "byte",
|
|
||||||
+ "kilobyte",
|
|
||||||
+ "megabyte",
|
|
||||||
+ "gigabyte",
|
|
||||||
+ "word",
|
|
||||||
+ "dword",
|
|
||||||
+ "qword",
|
|
||||||
+ "line",
|
|
||||||
+ "hit",
|
|
||||||
+ "miss",
|
|
||||||
+ "retry",
|
|
||||||
+ "reset",
|
|
||||||
+ "overflow",
|
|
||||||
+ "underrun",
|
|
||||||
+ "collision",
|
|
||||||
+ "packets",
|
|
||||||
+ "messages",
|
|
||||||
+ "characters",
|
|
||||||
+ "error",
|
|
||||||
+ "correctable error",
|
|
||||||
+ "uncorrectable error"
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/* sensor type codes (IPMI v1.5 table 36.3)
|
|
||||||
+ / Updated to v2.0 Table 42-3, Sensor Type Codes */
|
|
||||||
+static const char *sensor_type_desc[] = {
|
|
||||||
+ "reserved",
|
|
||||||
+ "Temperature",
|
|
||||||
+ "Voltage",
|
|
||||||
+ "Current",
|
|
||||||
+ "Fan",
|
|
||||||
+ "Physical Security",
|
|
||||||
+ "Platform Security",
|
|
||||||
+ "Processor",
|
|
||||||
+ "Power Supply",
|
|
||||||
+ "Power Unit",
|
|
||||||
+ "Cooling Device",
|
|
||||||
+ "Other",
|
|
||||||
+ "Memory",
|
|
||||||
+ "Drive Slot / Bay",
|
|
||||||
+ "POST Memory Resize",
|
|
||||||
+ "System Firmwares",
|
|
||||||
+ "Event Logging Disabled",
|
|
||||||
+ "Watchdog1",
|
|
||||||
+ "System Event",
|
|
||||||
+ "Critical Interrupt",
|
|
||||||
+ "Button",
|
|
||||||
+ "Module / Board",
|
|
||||||
+ "Microcontroller",
|
|
||||||
+ "Add-in Card",
|
|
||||||
+ "Chassis",
|
|
||||||
+ "Chip Set",
|
|
||||||
+ "Other FRU",
|
|
||||||
+ "Cable / Interconnect",
|
|
||||||
+ "Terminator",
|
|
||||||
+ "System Boot Initiated",
|
|
||||||
+ "Boot Error",
|
|
||||||
+ "OS Boot",
|
|
||||||
+ "OS Critical Stop",
|
|
||||||
+ "Slot / Connector",
|
|
||||||
+ "System ACPI Power State",
|
|
||||||
+ "Watchdog2",
|
|
||||||
+ "Platform Alert",
|
|
||||||
+ "Entity Presence",
|
|
||||||
+ "Monitor ASIC",
|
|
||||||
+ "LAN",
|
|
||||||
+ "Management Subsys Health",
|
|
||||||
+ "Battery",
|
|
||||||
+ "Session Audit",
|
|
||||||
+ "Version Change",
|
|
||||||
+ "FRU State"
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
void printf_sdr_usage();
|
|
||||||
|
|
||||||
/* From src/plugins/ipmi_intf.c: */
|
|
||||||
--
|
|
||||||
2.40.1
|
|
||||||
|
|
|
@ -1,201 +0,0 @@
|
||||||
From 12e2f5da63fcfdb544f87ec492e5b1bc4f89868c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alexander Amelkin <alexander@amelkin.msk.ru>
|
|
||||||
Date: Fri, 19 Apr 2019 15:07:25 +0300
|
|
||||||
Subject: [PATCH] sdr: Fix segfault on invalid unit types
|
|
||||||
|
|
||||||
The program would crash if the BMC returned an out of range (>90)
|
|
||||||
unit type for a full sensor record. This commit adds a range check
|
|
||||||
and also add support for IPMI 2.0 additional unit types 91 and 92
|
|
||||||
("fatal error" and "grams").
|
|
||||||
|
|
||||||
Resolves ipmitool/ipmitool#118
|
|
||||||
|
|
||||||
Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
|
|
||||||
---
|
|
||||||
include/ipmitool/ipmi_sdr.h | 32 ++++++++++++++---
|
|
||||||
lib/ipmi_sdr.c | 72 +++++++++++++++++++++++++------------
|
|
||||||
2 files changed, 78 insertions(+), 26 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/include/ipmitool/ipmi_sdr.h b/include/ipmitool/ipmi_sdr.h
|
|
||||||
index 5e6afd3..9f783c4 100644
|
|
||||||
--- a/include/ipmitool/ipmi_sdr.h
|
|
||||||
+++ b/include/ipmitool/ipmi_sdr.h
|
|
||||||
@@ -37,6 +37,7 @@
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#include <stdbool.h>
|
|
||||||
#include <inttypes.h>
|
|
||||||
#include <math.h>
|
|
||||||
#include <ipmitool/bswap.h>
|
|
||||||
@@ -381,6 +382,29 @@ struct sdr_record_common_sensor {
|
|
||||||
|
|
||||||
struct sdr_record_mask mask;
|
|
||||||
|
|
||||||
+/* IPMI 2.0, Table 43-1, byte 21[7:6] Analog (numeric) Data Format */
|
|
||||||
+#define SDR_UNIT_FMT_UNSIGNED 0 /* unsigned */
|
|
||||||
+#define SDR_UNIT_FMT_1S_COMPL 1 /* 1's complement (signed) */
|
|
||||||
+#define SDR_UNIT_FMT_2S_COMPL 2 /* 2's complement (signed) */
|
|
||||||
+#define SDR_UNIT_FMT_NA 3 /* does not return analog (numeric) reading */
|
|
||||||
+/* IPMI 2.0, Table 43-1, byte 21[5:3] Rate */
|
|
||||||
+#define SDR_UNIT_RATE_NONE 0 /* none */
|
|
||||||
+#define SDR_UNIT_RATE_MICROSEC 1 /* per us */
|
|
||||||
+#define SDR_UNIT_RATE_MILLISEC 2 /* per ms */
|
|
||||||
+#define SDR_UNIT_RATE_SEC 3 /* per s */
|
|
||||||
+#define SDR_UNIT_RATE_MIN 4 /* per min */
|
|
||||||
+#define SDR_UNIT_RATE_HR 5 /* per hour */
|
|
||||||
+#define SDR_UNIT_RATE_DAY 6 /* per day */
|
|
||||||
+#define SDR_UNIT_RATE_RSVD 7 /* reserved */
|
|
||||||
+/* IPMI 2.0, Table 43-1, byte 21[2:1] Modifier Unit */
|
|
||||||
+#define SDR_UNIT_MOD_NONE 0 /* none */
|
|
||||||
+#define SDR_UNIT_MOD_DIV 1 /* Basic Unit / Modifier Unit */
|
|
||||||
+#define SDR_UNIT_MOD_MUL 2 /* Basic Unit * Mofifier Unit */
|
|
||||||
+#define SDR_UNIT_MOD_RSVD 3 /* Reserved */
|
|
||||||
+/* IPMI 2.0, Table 43-1, byte 21[0] Percentage */
|
|
||||||
+#define SDR_UNIT_PCT_NO 0
|
|
||||||
+#define SDR_UNIT_PCT_YES 1
|
|
||||||
+
|
|
||||||
struct {
|
|
||||||
#if WORDS_BIGENDIAN
|
|
||||||
uint8_t analog:2;
|
|
||||||
@@ -394,8 +418,8 @@ struct sdr_record_common_sensor {
|
|
||||||
uint8_t analog:2;
|
|
||||||
#endif
|
|
||||||
struct {
|
|
||||||
- uint8_t base;
|
|
||||||
- uint8_t modifier;
|
|
||||||
+ uint8_t base; /* Base unit type code per IPMI 2.0 Table 43-15 */
|
|
||||||
+ uint8_t modifier; /* Modifier unit type code per Table 43-15 */
|
|
||||||
} ATTRIBUTE_PACKING type;
|
|
||||||
} ATTRIBUTE_PACKING unit;
|
|
||||||
} ATTRIBUTE_PACKING;
|
|
||||||
@@ -833,8 +857,8 @@ void ipmi_sdr_print_sensor_hysteresis(struct sdr_record_common_sensor *sensor,
|
|
||||||
struct sdr_record_full_sensor *full,
|
|
||||||
uint8_t hysteresis_value,
|
|
||||||
const char *hdrstr);
|
|
||||||
-const char *ipmi_sdr_get_unit_string(uint8_t pct, uint8_t type,
|
|
||||||
- uint8_t base, uint8_t modifier);
|
|
||||||
+const char *ipmi_sdr_get_unit_string(bool pct, uint8_t type,
|
|
||||||
+ uint8_t base, uint8_t modifier);
|
|
||||||
struct sensor_reading *
|
|
||||||
ipmi_sdr_read_sensor_value(struct ipmi_intf *intf,
|
|
||||||
struct sdr_record_common_sensor *sensor,
|
|
||||||
diff --git a/lib/ipmi_sdr.c b/lib/ipmi_sdr.c
|
|
||||||
index eb40b36..b43765a 100644
|
|
||||||
--- a/lib/ipmi_sdr.c
|
|
||||||
+++ b/lib/ipmi_sdr.c
|
|
||||||
@@ -68,8 +68,9 @@ static struct sdr_record_list *sdr_list_head = NULL;
|
|
||||||
static struct sdr_record_list *sdr_list_tail = NULL;
|
|
||||||
static struct ipmi_sdr_iterator *sdr_list_itr = NULL;
|
|
||||||
|
|
||||||
-/* unit description codes (IPMI v1.5 section 37.16) */
|
|
||||||
-#define UNIT_MAX 0x90
|
|
||||||
+/* IPMI 2.0 Table 43-15, Sensor Unit Type Codes */
|
|
||||||
+#define UNIT_TYPE_MAX 92 /* This is the ID of "grams" */
|
|
||||||
+#define UNIT_TYPE_LONGEST_NAME 19 /* This is the length of "color temp deg K" */
|
|
||||||
static const char *unit_desc[] = {
|
|
||||||
"unspecified",
|
|
||||||
"degrees C",
|
|
||||||
@@ -161,7 +162,9 @@ static const char *unit_desc[] = {
|
|
||||||
"characters",
|
|
||||||
"error",
|
|
||||||
"correctable error",
|
|
||||||
- "uncorrectable error"
|
|
||||||
+ "uncorrectable error",
|
|
||||||
+ "fatal error",
|
|
||||||
+ "grams"
|
|
||||||
};
|
|
||||||
|
|
||||||
/* sensor type codes (IPMI v1.5 table 36.3)
|
|
||||||
@@ -220,35 +223,60 @@ void printf_sdr_usage();
|
|
||||||
uint16_t
|
|
||||||
ipmi_intf_get_max_response_data_size(struct ipmi_intf * intf);
|
|
||||||
|
|
||||||
-/* ipmi_sdr_get_unit_string - return units for base/modifier
|
|
||||||
+/** ipmi_sdr_get_unit_string - return units for base/modifier
|
|
||||||
*
|
|
||||||
- * @pct: units are a percentage
|
|
||||||
- * @type: unit type
|
|
||||||
- * @base: base
|
|
||||||
- * @modifier: modifier
|
|
||||||
+ * @param[in] pct Indicates that units are a percentage
|
|
||||||
+ * @param[in] relation Modifier unit to base unit relation
|
|
||||||
+ * (SDR_UNIT_MOD_NONE, SDR_UNIT_MOD_MUL,
|
|
||||||
+ * or SDR_UNIT_MOD_DIV)
|
|
||||||
+ * @param[in] base The base unit type id
|
|
||||||
+ * @param[in] modifier The modifier unit type id
|
|
||||||
*
|
|
||||||
- * returns pointer to static string
|
|
||||||
+ * @returns a pointer to static string
|
|
||||||
*/
|
|
||||||
const char *
|
|
||||||
-ipmi_sdr_get_unit_string(uint8_t pct, uint8_t type, uint8_t base, uint8_t modifier)
|
|
||||||
+ipmi_sdr_get_unit_string(bool pct, uint8_t relation,
|
|
||||||
+ uint8_t base, uint8_t modifier)
|
|
||||||
{
|
|
||||||
- static char unitstr[16];
|
|
||||||
+ /*
|
|
||||||
+ * Twice as long as the longest possible unit name, plus
|
|
||||||
+ * four characters for '%' and relation (either ' * ' or '/'),
|
|
||||||
+ * plus the terminating null-byte.
|
|
||||||
+ */
|
|
||||||
+ static char unitstr[2 * UNIT_TYPE_LONGEST_NAME + 4 + 1];
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* By default, if units are supposed to be percent, we will pre-pend
|
|
||||||
* the percent string to the textual representation of the units.
|
|
||||||
*/
|
|
||||||
- char *pctstr = pct ? "% " : "";
|
|
||||||
- memset(unitstr, 0, sizeof (unitstr));
|
|
||||||
- switch (type) {
|
|
||||||
- case 2:
|
|
||||||
- snprintf(unitstr, sizeof (unitstr), "%s%s * %s",
|
|
||||||
- pctstr, unit_desc[base], unit_desc[modifier]);
|
|
||||||
+ const char *pctstr = pct ? "% " : "";
|
|
||||||
+ const char *basestr;
|
|
||||||
+ const char *modstr;
|
|
||||||
+
|
|
||||||
+ if (base <= UNIT_TYPE_MAX) {
|
|
||||||
+ basestr = unit_desc[base];
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
+ basestr = "invalid";
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (modifier <= UNIT_TYPE_MAX) {
|
|
||||||
+ modstr = unit_desc[modifier];
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
+ modstr = "invalid";
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ switch (relation) {
|
|
||||||
+ case SDR_UNIT_MOD_MUL:
|
|
||||||
+ snprintf(unitstr, sizeof (unitstr), "%s%s * %s",
|
|
||||||
+ pctstr, basestr, modstr);
|
|
||||||
break;
|
|
||||||
- case 1:
|
|
||||||
+ case SDR_UNIT_MOD_DIV:
|
|
||||||
snprintf(unitstr, sizeof (unitstr), "%s%s/%s",
|
|
||||||
- pctstr, unit_desc[base], unit_desc[modifier]);
|
|
||||||
+ pctstr, basestr, modstr);
|
|
||||||
break;
|
|
||||||
- case 0:
|
|
||||||
+ case SDR_UNIT_MOD_NONE:
|
|
||||||
default:
|
|
||||||
/*
|
|
||||||
* Display the text "percent" only when the Base unit is
|
|
||||||
@@ -257,8 +285,8 @@ ipmi_sdr_get_unit_string(uint8_t pct, uint8_t type, uint8_t base, uint8_t modifi
|
|
||||||
if (base == 0 && pct) {
|
|
||||||
snprintf(unitstr, sizeof(unitstr), "percent");
|
|
||||||
} else {
|
|
||||||
- snprintf(unitstr, sizeof (unitstr), "%s%s",
|
|
||||||
- pctstr, unit_desc[base]);
|
|
||||||
+ snprintf(unitstr, sizeof (unitstr), "%s%s",
|
|
||||||
+ pctstr, basestr);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.40.1
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ After=ipmi.service
|
||||||
EnvironmentFile=-/etc/sysconfig/ipmievd
|
EnvironmentFile=-/etc/sysconfig/ipmievd
|
||||||
ExecStart=/usr/sbin/ipmievd $IPMIEVD_OPTIONS
|
ExecStart=/usr/sbin/ipmievd $IPMIEVD_OPTIONS
|
||||||
Type=forking
|
Type=forking
|
||||||
PIDFile=/run/ipmievd.pid
|
PIDFile=/var/run/ipmievd.pid
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
IPMIEVD_OPTIONS="sel daemon pidfile=/run/ipmievd.pid"
|
IPMIEVD_OPTIONS="sel daemon pidfile=/var/run/ipmievd.pid"
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
%global gitname IPMITOOL
|
|
||||||
%global gitversion 1_8_18
|
|
||||||
|
|
||||||
Name: ipmitool
|
Name: ipmitool
|
||||||
Summary: Utility for IPMI control
|
Summary: Utility for IPMI control
|
||||||
Version: 1.8.18
|
Version: 1.8.18
|
||||||
Release: 27%{?dist}
|
Release: 18%{?dist}
|
||||||
License: BSD
|
License: BSD
|
||||||
URL: http://ipmitool.sourceforge.net/
|
URL: http://ipmitool.sourceforge.net/
|
||||||
Source0: https://github.com/%{name}/%{name}/archive/%{gitname}_%{gitversion}/%{name}-%{version}.tar.gz
|
Source0: http://downloads.sourceforge.net/project/%{name}/%{name}/%{version}/%{name}-%{version}.tar.bz2
|
||||||
Source1: openipmi-ipmievd.sysconf
|
Source1: openipmi-ipmievd.sysconf
|
||||||
Source2: ipmievd.service
|
Source2: ipmievd.service
|
||||||
Source3: exchange-bmc-os-info.service
|
Source3: exchange-bmc-os-info.service
|
||||||
|
@ -23,19 +20,12 @@ Patch4: 0004-slowswid.patch
|
||||||
Patch5: 0005-sensor-id-length.patch
|
Patch5: 0005-sensor-id-length.patch
|
||||||
Patch6: 0006-enable-usb.patch
|
Patch6: 0006-enable-usb.patch
|
||||||
Patch7: 0007-check-input.patch
|
Patch7: 0007-check-input.patch
|
||||||
Patch8: 0008-add-extern.patch
|
Patch8: 0008-use-best-cipher.patch
|
||||||
Patch9: 0009-best-cipher.patch
|
Patch9: 0009-CVE-2020-5208.patch
|
||||||
Patch10: 0010-pef-missing-newline.patch
|
Patch10: 0010-quanta-oem-support.patch
|
||||||
Patch11: 0011-expand-sensor-name-column.patch
|
Patch11: 0011-pef-missing-newline.patch
|
||||||
Patch12: 0012-CVE-2020-5208.patch
|
Patch12: 0012-lanplus-cipher-retry.patch
|
||||||
Patch13: 0013-quanta-oem-support.patch
|
Patch13: 0013-lanplus-Cleanup.-Refix-6dec83ff-fix-be2c0c4b.patch
|
||||||
Patch14: 0014-lanplus-cipher-retry.patch
|
|
||||||
Patch15: 0015-lanplus-Cleanup.-Refix-6dec83ff-fix-be2c0c4b.patch
|
|
||||||
Patch20: 0020-plugins-open-Fix-for-interrupted-select.patch
|
|
||||||
Patch21: 0021-open-checking-received-msg-id-against-expectation.patch
|
|
||||||
Patch22: 0022-nvidia-iana.patch
|
|
||||||
Patch23: 0023-move-static-objects-to-source-file.patch
|
|
||||||
Patch24: 0024-sdr-Fix-segfault-on-invalid-unit-types.patch
|
|
||||||
|
|
||||||
BuildRequires: openssl-devel readline-devel ncurses-devel
|
BuildRequires: openssl-devel readline-devel ncurses-devel
|
||||||
%{?systemd_requires}
|
%{?systemd_requires}
|
||||||
|
@ -88,7 +78,6 @@ Requires: ipmitool
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
%{?systemd_requires}
|
%{?systemd_requires}
|
||||||
BuildRequires: systemd
|
BuildRequires: systemd
|
||||||
BuildRequires: make
|
|
||||||
|
|
||||||
Summary: Let OS and BMC exchange info
|
Summary: Let OS and BMC exchange info
|
||||||
|
|
||||||
|
@ -99,7 +88,7 @@ for the host OS to use.
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -n %{name}-%{gitname}_%{gitversion} -p1
|
%autosetup -p1
|
||||||
|
|
||||||
for f in AUTHORS ChangeLog; do
|
for f in AUTHORS ChangeLog; do
|
||||||
iconv -f iso-8859-1 -t utf8 < ${f} > ${f}.utf8
|
iconv -f iso-8859-1 -t utf8 < ${f} > ${f}.utf8
|
||||||
|
@ -123,7 +112,9 @@ autoconf
|
||||||
automake --foreign
|
automake --foreign
|
||||||
# end: release auto-tools
|
# end: release auto-tools
|
||||||
|
|
||||||
%configure --disable-dependency-tracking --enable-file-security --disable-intf-free
|
%configure \
|
||||||
|
CFLAGS="%{optflags} -fno-strict-aliasing" \
|
||||||
|
--disable-dependency-tracking --enable-file-security --disable-intf-free
|
||||||
make %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
%install
|
%install
|
||||||
|
@ -194,68 +185,33 @@ install -Dm 755 contrib/bmc-snmp-proxy %{buildroot}%{_libexecdir}/bmc-sn
|
||||||
%{_libexecdir}/bmc-snmp-proxy
|
%{_libexecdir}/bmc-snmp-proxy
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Thu Jul 27 2023 Pavel Cahyna <pcahyna@redhat.com> - 1.8.18-27
|
* Mon Jul 19 2021 Pavel Cahyna <pcahyna@redhat.com> - 1.8.18-18
|
||||||
- Backport upstream PR 120 to fix segfault on invalid unit types
|
- Protect against negative values to memmove that caused
|
||||||
Resolves: rhbz#2224578
|
"ipmitool sol activate" to crash against an IBM DataPower appliance
|
||||||
- Add vendor ID for NVIDIA BMCs
|
(#1951480)
|
||||||
Resolves: rhbz#2218358
|
Cherry-picked from upstream PR#78.
|
||||||
- Update /var/run to /run in ipmievd.service that systemd warns about
|
|
||||||
Resolves: rhbz#2100475
|
|
||||||
- Add upstream ipmievd patch to check received msg id against expectation
|
|
||||||
Fixes problem where SEL response is not recognized correctly
|
|
||||||
when SEL request times out
|
|
||||||
Resolves: rhbz#2224569
|
|
||||||
|
|
||||||
* Mon Feb 7 2022 Pavel Cahyna <pcahyna@redhat.com> - 1.8.18-25
|
* Wed Jun 03 2020 Václav Doležal <vdolezal@redhat.com> - 1.8.18-17
|
||||||
- Apply changes from RHEL 8 (#1811941, #1831158, #1951480)
|
- Disable retry of pre-session "Get cipher suites" command as some
|
||||||
Resolves: rhbz#2051621
|
BMCs are ignoring it (#1831158)
|
||||||
|
|
||||||
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.8.18-24
|
* Thu Apr 30 2020 Václav Doležal <vdolezal@redhat.com> - 1.8.18-16
|
||||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
- Fix "ipmitool pef {status,info}" not printing final newline (#1840546)
|
||||||
Related: rhbz#1991688
|
|
||||||
|
|
||||||
* Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.8.18-23
|
* Thu Apr 30 2020 Václav Doležal <vdolezal@redhat.com> - 1.8.18-15
|
||||||
- Rebuilt for RHEL 9 BETA for openssl 3.0
|
- Backport OEM support for Quanta (#1811941)
|
||||||
Related: rhbz#1971065
|
|
||||||
|
|
||||||
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.8.18-22
|
* Fri Feb 07 2020 Václav Doležal <vdolezal@redhat.com> - 1.8.18-14
|
||||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
- Fix memory leak (found by covscan)
|
||||||
|
|
||||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.18-21
|
* Fri Feb 07 2020 Václav Doležal <vdolezal@redhat.com> - 1.8.18-13
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
- Backport fix for CVE-2020-5208 (#1799039)
|
||||||
|
|
||||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.18-20
|
* Fri Nov 15 2019 Václav Doležal <vdolezal@redhat.com> - 1.8.18-12
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
- Disable -fstrict-aliasing (RPMDiff issue)
|
||||||
|
|
||||||
* Thu Feb 06 2020 Václav Doležal <vdolezal@redhat.com> - 1.8.18-19
|
* Tue Oct 15 2019 Václav Doležal <vdolezal@redhat.com> - 1.8.18-11
|
||||||
- Backport fix for CVE-2020-5208 (#1798722); for details see
|
- Choose the best cipher suite available when connecting over LAN (#1749360)
|
||||||
https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp
|
|
||||||
|
|
||||||
* Mon Feb 03 2020 Václav Doležal <vdolezal@redhat.com> - 1.8.18-18
|
|
||||||
- Backport patch to autoselect best cipher suite when working over lanplus backend
|
|
||||||
- Fixed 'ipmitool pef status/info' not printing final newline
|
|
||||||
- Expanded column for sensor name in 'ipmi sdr/sensor' output so longer names are aligned
|
|
||||||
|
|
||||||
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.18-17
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jan 23 2020 Václav Doležal <vdolezal@redhat.com> - 1.8.18-16
|
|
||||||
- Fix FTBFS with GCC 10
|
|
||||||
|
|
||||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.18-15
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.8.18-14
|
|
||||||
- Rebuild for readline 8.0
|
|
||||||
|
|
||||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.18-13
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.18-12
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Apr 10 2018 Josef Ridky <jridky@redhat.com> - 1.8.18-11
|
|
||||||
- Project moved to github
|
|
||||||
|
|
||||||
* Thu Feb 22 2018 Josef Ridky <jridky@redhat.com> - 1.8.18-10
|
* Thu Feb 22 2018 Josef Ridky <jridky@redhat.com> - 1.8.18-10
|
||||||
- Spec clean up
|
- Spec clean up
|
||||||
|
|
Loading…
Reference in New Issue