SHA256
1
0
forked from pool/ipmitool

Accepting request 361388 from home:trenn:branches:systemsmanagement

- Update to latest ipmitool source code
  commit 9020b67347f46554009591ae91e4fa8875c65dfa
  Date:   Tue Jan 12 21:16:37 2016 +0500
- Fix memleak: bnc#968105
Add: ipmitool-sol_memleak.patch

OBS-URL: https://build.opensuse.org/request/show/361388
OBS-URL: https://build.opensuse.org/package/show/systemsmanagement/ipmitool?expand=0&rev=35
This commit is contained in:
Thomas Renninger 2016-02-25 13:26:31 +00:00 committed by Git OBS Bridge
parent 4bbea4b58e
commit 570b85101b
11 changed files with 187 additions and 14227 deletions

View File

@ -1,8 +1,8 @@
Index: ipmitool-1.8.15/lib/helper.c
Index: ipmitool-1.8.16/lib/helper.c
===================================================================
--- ipmitool-1.8.15.orig/lib/helper.c 2015-01-14 14:28:25.104693872 +0100
+++ ipmitool-1.8.15/lib/helper.c 2015-01-14 14:28:30.392693957 +0100
@@ -659,7 +659,6 @@
--- ipmitool-1.8.16.orig/lib/helper.c 2015-11-22 13:50:54.000000000 +0100
+++ ipmitool-1.8.16/lib/helper.c 2016-02-25 13:25:40.147488838 +0100
@@ -659,7 +659,6 @@ ipmi_start_daemon(struct ipmi_intf *intf
#endif
chdir("/");
@ -10,11 +10,11 @@ Index: ipmitool-1.8.15/lib/helper.c
for (fd=0; fd<64; fd++) {
if (fd != intf->fd)
Index: ipmitool-1.8.15/src/ipmievd.c
Index: ipmitool-1.8.16/src/ipmievd.c
===================================================================
--- ipmitool-1.8.15.orig/src/ipmievd.c 2015-01-14 14:28:25.112693873 +0100
+++ ipmitool-1.8.15/src/ipmievd.c 2015-01-14 14:28:30.392693957 +0100
@@ -701,6 +701,7 @@
--- ipmitool-1.8.16.orig/src/ipmievd.c 2015-11-22 13:50:54.000000000 +0100
+++ ipmitool-1.8.16/src/ipmievd.c 2016-02-25 13:25:40.155489280 +0100
@@ -701,6 +701,7 @@ ipmievd_main(struct ipmi_event_intf * ei
int i, rc;
int daemon = 1;
struct sigaction act;
@ -22,7 +22,7 @@ Index: ipmitool-1.8.15/src/ipmievd.c
memset(pidfile, 0, 64);
sprintf(pidfile, "%s%d", DEFAULT_PIDFILE, eintf->intf->devnum);
@@ -762,8 +763,9 @@
@@ -763,8 +764,9 @@ ipmievd_main(struct ipmi_event_intf * ei
ipmi_start_daemon(eintf->intf);

View File

@ -1,8 +1,8 @@
Index: ipmitool-1.8.15/lib/ipmi_fwum.c
Index: ipmitool-1.8.16/lib/ipmi_fwum.c
===================================================================
--- ipmitool-1.8.15.orig/lib/ipmi_fwum.c 2015-01-14 14:28:25.108693872 +0100
+++ ipmitool-1.8.15/lib/ipmi_fwum.c 2015-01-14 14:28:27.080693904 +0100
@@ -1099,12 +1099,14 @@
--- ipmitool-1.8.16.orig/lib/ipmi_fwum.c 2015-11-22 13:50:54.000000000 +0100
+++ ipmitool-1.8.16/lib/ipmi_fwum.c 2016-02-25 13:25:35.907249893 +0100
@@ -1098,12 +1098,14 @@ ipmi_kfwum_checkfwcompat(tKFWUM_BoardInf
int compatible = 0;
if (boardInfo.iana != firmInfo.iana) {
lprintf(LOG_ERR,
@ -19,7 +19,7 @@ Index: ipmitool-1.8.15/lib/ipmi_fwum.c
compatible = (-1);
}
if (compatible != 0) {
@@ -1122,6 +1124,10 @@
@@ -1121,6 +1123,10 @@ printf_kfwum_info(tKFWUM_BoardInfo board
printf(
"Target IANA number : %u\n", boardInfo.iana);
printf(

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4acd2df5f8740fef5c032cebee0113ec4d3bbef04a6f4dbfaf7fcc7f3eb08c40
size 747174

3
ipmitool-1.8.16.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9c972fbfa9e400ba96a55464be25557f0386a1d44d238ebe9757c2b9b6e8eff7
size 461483

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,97 @@
diff --git a/lib/hpm2.c b/lib/hpm2.c
index 6420629..f13be07 100644
--- a/lib/hpm2.c
+++ b/lib/hpm2.c
@@ -128,7 +128,7 @@ int hpm2_get_capabilities(struct ipmi_intf * intf,
#endif
/* check HPM.2 revision */
- if (caps->hpm2_revision_id != HPM2_REVISION) {
+ if (caps->hpm2_revision_id == 0) {
lprintf(LOG_NOTICE, "Bad HPM.2 revision, rev=%d",
caps->hpm2_revision_id);
return -1;
diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c
index 40f98e7..5ca6466 100644
--- a/lib/ipmi_fru.c
+++ b/lib/ipmi_fru.c
@@ -5042,6 +5042,11 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId,
header.offset.product += change_size_by_8;
}
+ if ((f_type == 'c' ) || (f_type == 'b' ) || (f_type == 'p' )) {
+ printf("Change multi offset from %d to %d\n", header.offset.multi, header.offset.multi + change_size_by_8);
+ header.offset.multi += change_size_by_8;
+ }
+
/* Adjust length of the section */
if (f_type == 'c')
{
diff --git a/lib/ipmi_sel.c b/lib/ipmi_sel.c
index 5df66a7..fbdccd9 100644
--- a/lib/ipmi_sel.c
+++ b/lib/ipmi_sel.c
@@ -419,7 +419,12 @@ ipmi_sel_add_entries_fromfile(struct ipmi_intf * intf, const char * filename)
memset(&sel_event, 0, sizeof(struct sel_event_record));
sel_event.record_id = 0x0000;
sel_event.record_type = 0x02;
- sel_event.sel_type.standard_type.gen_id = 0x00;
+ /*
+ * IPMI spec §32.1 generator ID
+ * Bit 0 = 1 "Software defined"
+ * Bit 1-7: SWID (IPMI spec §5.5), using 2 = "System management software"
+ */
+ sel_event.sel_type.standard_type.gen_id = 0x41;
sel_event.sel_type.standard_type.evm_rev = rqdata[0];
sel_event.sel_type.standard_type.sensor_type = rqdata[1];
sel_event.sel_type.standard_type.sensor_num = rqdata[2];
diff --git a/lib/ipmi_user.c b/lib/ipmi_user.c
index 6074209..e339c2a 100644
--- a/lib/ipmi_user.c
+++ b/lib/ipmi_user.c
@@ -590,7 +590,7 @@ ipmi_user_priv(struct ipmi_intf *intf, int argc, char **argv)
user_access.user_id);
return (-1);
} else {
- printf("Set Privilege Level command successful (user %d)",
+ printf("Set Privilege Level command successful (user %d)\n",
user_access.user_id);
return 0;
}
@@ -602,6 +602,7 @@ ipmi_user_mod(struct ipmi_intf *intf, int argc, char **argv)
/* Disable / Enable */
uint8_t user_id;
uint8_t operation;
+ uint8_t ccode;
if (argc != 2) {
print_user_usage();
@@ -613,8 +614,14 @@ ipmi_user_mod(struct ipmi_intf *intf, int argc, char **argv)
operation = (strncmp(argv[0], "disable", 7) == 0) ?
IPMI_PASSWORD_DISABLE_USER : IPMI_PASSWORD_ENABLE_USER;
- return _ipmi_set_user_password(intf, user_id, operation,
+ ccode = _ipmi_set_user_password(intf, user_id, operation,
(char *)NULL, 0);
+ if (eval_ccode(ccode) != 0) {
+ lprintf(LOG_ERR, "Set User Password command failed (user %d)",
+ user_id);
+ return (-1);
+ }
+ return 0;
}
int
diff --git a/src/plugins/ipmi_intf.c b/src/plugins/ipmi_intf.c
index 19ba5e3..090ab2f 100644
--- a/src/plugins/ipmi_intf.c
+++ b/src/plugins/ipmi_intf.c
@@ -451,7 +451,7 @@ ipmi_intf_socket_connect(struct ipmi_intf * intf)
}
/* OK, now try to connect with the scope id from this interface address */
- if (addr6->sin6_scope_id != 0) {
+ if (addr6->sin6_scope_id != 0 || !IN6_IS_ADDR_LINKLOCAL(&tmp6->sin6_addr)) {
if (connect(intf->fd, rp->ai_addr, rp->ai_addrlen) != -1) {
hints.ai_family = rp->ai_family;
lprintf(LOG_DEBUG, "Successful connected on %s interface with scope id %d", ifa->ifa_name, tmp6->sin6_scope_id);

View File

@ -0,0 +1,21 @@
Index: ipmitool-1.8.16/src/plugins/lanplus/lanplus.c
===================================================================
--- ipmitool-1.8.16.orig/src/plugins/lanplus/lanplus.c 2015-11-22 13:50:54.000000000 +0100
+++ ipmitool-1.8.16/src/plugins/lanplus/lanplus.c 2016-02-25 13:38:10.989859786 +0100
@@ -2101,7 +2101,7 @@ ipmi_lanplus_send_payload(
struct ipmi_v2_payload * payload)
{
struct ipmi_rs * rsp = NULL;
- uint8_t * msg_data;
+ uint8_t * msg_data = NULL;
int msg_length;
struct ipmi_session * session = intf->session;
struct ipmi_rq_entry * entry = NULL;
@@ -2341,6 +2341,7 @@ ipmi_lanplus_send_payload(
case IPMI_PAYLOAD_TYPE_RMCP_OPEN_REQUEST:
case IPMI_PAYLOAD_TYPE_RAKP_1:
case IPMI_PAYLOAD_TYPE_RAKP_3:
+ case IPMI_PAYLOAD_TYPE_SOL:
free(msg_data);
msg_data = NULL;
break;

View File

@ -1,3 +1,12 @@
-------------------------------------------------------------------
Thu Feb 25 11:57:55 UTC 2016 - trenn@suse.de
- Update to latest ipmitool source code
commit 9020b67347f46554009591ae91e4fa8875c65dfa
Date: Tue Jan 12 21:16:37 2016 +0500
- Fix memleak: bnc#968105
Add: ipmitool-sol_memleak.patch
-------------------------------------------------------------------
Wed Feb 24 20:34:19 CET 2016 - ro@suse.de

View File

@ -27,12 +27,12 @@ Url: http://ipmitool.sourceforge.net/
Summary: Utility for IPMI Control
License: BSD-3-Clause
Group: System/Management
Version: 1.8.15
Version: 1.8.16
Release: 0
Source: http://heanet.dl.sourceforge.net/sourceforge/%{name}/%{name}-%{version}.tar.bz2
Source1: ipmievd.service
Source2: ipmievd.sysconf
Patch1: ipmitool-1_8_15_HEAD.patch
Patch1: ipmitool-1_8_16_HEAD.patch
Patch3: fwum_enhance_output.patch
Patch6: fix_file_permissions.patch
Patch8: several_more_compile_fixes.patch
@ -40,6 +40,7 @@ Patch9: ipmitool_adjust_suse.paths
Patch10: 0001-Incorporate-upstream-comments-to-289-add-whitespace.patch
Patch11: ipmitool-1.8.10-implicit-fortify-decl.patch
Patch12: latest_compile_fixes.patch
Patch13: ipmitool-sol_memleak.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# bmc-snmp-proxy needs /usr/sbin/snmpd
@ -75,6 +76,7 @@ and setting LAN configuration, and chassis power control.
%patch10 -p1
%patch11 -p0
%patch12 -p1
%patch13 -p1
%build
touch INSTALL NEWS

View File

@ -13,10 +13,10 @@ and more compiler warning fixing stuff...
Signed-off-by: Thomas Renninger <trenn@suse.de>
Index: ipmitool-1.8.15/lib/ipmi_chassis.c
Index: ipmitool-1.8.16/lib/ipmi_chassis.c
===================================================================
--- ipmitool-1.8.15.orig/lib/ipmi_chassis.c 2015-01-14 16:28:54.020808802 +0100
+++ ipmitool-1.8.15/lib/ipmi_chassis.c 2015-01-15 10:16:29.193827184 +0100
--- ipmitool-1.8.16.orig/lib/ipmi_chassis.c 2015-11-22 13:50:54.000000000 +0100
+++ ipmitool-1.8.16/lib/ipmi_chassis.c 2016-02-25 13:25:49.392010059 +0100
@@ -30,6 +30,7 @@
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
@ -25,10 +25,10 @@ Index: ipmitool-1.8.15/lib/ipmi_chassis.c
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
Index: ipmitool-1.8.15/lib/ipmi_main.c
Index: ipmitool-1.8.16/lib/ipmi_main.c
===================================================================
--- ipmitool-1.8.15.orig/lib/ipmi_main.c 2015-01-14 14:44:12.916708941 +0100
+++ ipmitool-1.8.15/lib/ipmi_main.c 2015-01-15 10:17:02.977827721 +0100
--- ipmitool-1.8.16.orig/lib/ipmi_main.c 2015-11-22 13:50:54.000000000 +0100
+++ ipmitool-1.8.16/lib/ipmi_main.c 2016-02-25 13:25:49.400010253 +0100
@@ -29,7 +29,7 @@
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
@ -38,11 +38,11 @@ Index: ipmitool-1.8.15/lib/ipmi_main.c
#include <stdlib.h>
#include <stdio.h>
Index: ipmitool-1.8.15/lib/ipmi_sel.c
Index: ipmitool-1.8.16/lib/ipmi_sel.c
===================================================================
--- ipmitool-1.8.15.orig/lib/ipmi_sel.c 2015-01-14 14:44:12.916708941 +0100
+++ ipmitool-1.8.15/lib/ipmi_sel.c 2015-01-15 10:25:03.161835356 +0100
@@ -2391,18 +2391,18 @@
--- ipmitool-1.8.16.orig/lib/ipmi_sel.c 2016-02-25 13:25:35.059202081 +0100
+++ ipmitool-1.8.16/lib/ipmi_sel.c 2016-02-25 13:25:49.408010606 +0100
@@ -2399,18 +2399,18 @@ ipmi_sel_interpret(struct ipmi_intf *int
evt.sel_type.standard_type.timestamp;
/* skip timestamp */
@ -64,7 +64,7 @@ Index: ipmitool-1.8.15/lib/ipmi_sel.c
cursor++;
errno = 0;
@@ -2413,7 +2413,7 @@
@@ -2421,7 +2421,7 @@ ipmi_sel_interpret(struct ipmi_intf *int
status = (-1);
break;
}
@ -73,7 +73,7 @@ Index: ipmitool-1.8.15/lib/ipmi_sel.c
cursor++;
errno = 0;
@@ -2426,7 +2426,7 @@
@@ -2434,7 +2434,7 @@ ipmi_sel_interpret(struct ipmi_intf *int
}
/* skip to event type info */
@ -82,7 +82,7 @@ Index: ipmitool-1.8.15/lib/ipmi_sel.c
cursor++;
errno = 0;
@@ -2439,7 +2439,7 @@
@@ -2447,7 +2447,7 @@ ipmi_sel_interpret(struct ipmi_intf *int
}
/* skip to event dir info */
@ -91,7 +91,7 @@ Index: ipmitool-1.8.15/lib/ipmi_sel.c
cursor++;
if (*cursor == 'a') {
evt.sel_type.standard_type.event_dir = 0;
@@ -2447,7 +2447,7 @@
@@ -2455,7 +2455,7 @@ ipmi_sel_interpret(struct ipmi_intf *int
evt.sel_type.standard_type.event_dir = 1;
}
/* skip to data info */
@ -100,7 +100,7 @@ Index: ipmitool-1.8.15/lib/ipmi_sel.c
cursor++;
if (evt.sel_type.standard_type.sensor_type == 0xF0) {
@@ -2466,7 +2466,7 @@
@@ -2474,7 +2474,7 @@ ipmi_sel_interpret(struct ipmi_intf *int
}
/* Get to previous state */
@ -109,7 +109,7 @@ Index: ipmitool-1.8.15/lib/ipmi_sel.c
cursor++;
/* Set previous state */
@@ -2480,7 +2480,7 @@
@@ -2488,7 +2488,7 @@ ipmi_sel_interpret(struct ipmi_intf *int
}
/* Get to current state */
@ -118,7 +118,7 @@ Index: ipmitool-1.8.15/lib/ipmi_sel.c
cursor++;
/* Set current state */
@@ -2494,7 +2494,7 @@
@@ -2502,7 +2502,7 @@ ipmi_sel_interpret(struct ipmi_intf *int
}
/* skip to cause */
@ -127,7 +127,7 @@ Index: ipmitool-1.8.15/lib/ipmi_sel.c
cursor++;
errno = 0;
evt.sel_type.standard_type.event_data[1] |=
@@ -2513,7 +2513,7 @@
@@ -2521,7 +2521,7 @@ ipmi_sel_interpret(struct ipmi_intf *int
status = (-1);
break;
}
@ -136,7 +136,7 @@ Index: ipmitool-1.8.15/lib/ipmi_sel.c
cursor++;
errno = 0;
@@ -2525,7 +2525,7 @@
@@ -2533,7 +2533,7 @@ ipmi_sel_interpret(struct ipmi_intf *int
break;
}
@ -145,10 +145,10 @@ Index: ipmitool-1.8.15/lib/ipmi_sel.c
cursor++;
errno = 0;
Index: ipmitool-1.8.15/src/ipmishell.c
Index: ipmitool-1.8.16/src/ipmishell.c
===================================================================
--- ipmitool-1.8.15.orig/src/ipmishell.c 2015-01-14 14:44:12.924708941 +0100
+++ ipmitool-1.8.15/src/ipmishell.c 2015-01-15 10:27:18.445837506 +0100
--- ipmitool-1.8.16.orig/src/ipmishell.c 2015-11-22 13:50:54.000000000 +0100
+++ ipmitool-1.8.16/src/ipmishell.c 2016-02-25 13:25:49.412010855 +0100
@@ -30,6 +30,9 @@
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
@ -159,10 +159,10 @@ Index: ipmitool-1.8.15/src/ipmishell.c
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
Index: ipmitool-1.8.15/lib/log.c
Index: ipmitool-1.8.16/lib/log.c
===================================================================
--- ipmitool-1.8.15.orig/lib/log.c 2015-01-14 15:37:57.444760206 +0100
+++ ipmitool-1.8.15/lib/log.c 2015-01-15 10:28:25.441838572 +0100
--- ipmitool-1.8.16.orig/lib/log.c 2015-11-22 13:50:54.000000000 +0100
+++ ipmitool-1.8.16/lib/log.c 2016-02-25 13:25:49.420011423 +0100
@@ -30,6 +30,9 @@
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/

View File

@ -4,11 +4,11 @@ Changes partly very old and not possible to find the original author.
Signed-off-by: Thomas Renninger <trenn@suse.de>
Index: ipmitool-1.8.15/lib/ipmi_ekanalyzer.c
Index: ipmitool-1.8.16/lib/ipmi_ekanalyzer.c
===================================================================
--- ipmitool-1.8.15.orig/lib/ipmi_ekanalyzer.c 2015-01-14 14:27:59.116693459 +0100
+++ ipmitool-1.8.15/lib/ipmi_ekanalyzer.c 2015-01-14 14:28:08.504693609 +0100
@@ -3366,7 +3365,7 @@
--- ipmitool-1.8.16.orig/lib/ipmi_ekanalyzer.c 2015-11-22 13:50:54.000000000 +0100
+++ ipmitool-1.8.16/lib/ipmi_ekanalyzer.c 2016-02-25 13:25:42.079597717 +0100
@@ -3365,7 +3365,7 @@ ipmi_ek_display_board_p2p_record(struct
printf("\n");
offset += sizeof(struct fru_picmgext_guid);
}
@ -17,7 +17,7 @@ Index: ipmitool-1.8.15/lib/ipmi_ekanalyzer.c
offset < record->header.len;
offset += sizeof(struct fru_picmgext_link_desc)) {
/* to solve little endian/big endian problem */
@@ -3525,7 +3524,7 @@
@@ -3524,7 +3524,7 @@ ipmi_ek_display_radial_ipmb0_record(stru
if (record->data[offset] < 1) {
return;
}
@ -26,7 +26,7 @@ Index: ipmitool-1.8.15/lib/ipmi_ekanalyzer.c
unsigned char entry_count = 0;
printf(" IPMB-0 Hub Descriptor\n");
printf("\tHardware Address: 0x%02x\n",
@@ -3983,7 +3982,7 @@
@@ -3982,7 +3982,7 @@ ipmi_ek_display_clock_config_record(stru
(feature & 1) ? "Source" : "Receiver");
printf("\tFamily: 0x%02x - AccLVL: 0x%02x\n",
family, accuracy);
@ -35,11 +35,11 @@ Index: ipmitool-1.8.15/lib/ipmi_ekanalyzer.c
freq, min_freq, max_freq);
}
printf("\n");
Index: ipmitool-1.8.15/lib/ipmi_picmg.c
Index: ipmitool-1.8.16/lib/ipmi_picmg.c
===================================================================
--- ipmitool-1.8.15.orig/lib/ipmi_picmg.c 2015-01-14 14:25:17.556690891 +0100
+++ ipmitool-1.8.15/lib/ipmi_picmg.c 2015-01-14 14:28:08.504693609 +0100
@@ -878,7 +878,7 @@
--- ipmitool-1.8.16.orig/lib/ipmi_picmg.c 2015-11-22 13:50:54.000000000 +0100
+++ ipmitool-1.8.16/lib/ipmi_picmg.c 2016-02-25 13:25:42.087598155 +0100
@@ -855,7 +855,7 @@ ipmi_picmg_portstate_get(struct ipmi_int
}
else if (d->type >= 0x06 && d->type <= 0xef)
{
@ -48,7 +48,7 @@ Index: ipmitool-1.8.15/lib/ipmi_picmg.c
}
else if (d->type >= 0xf0 && d->type <= 0xfe)
{
@@ -1690,7 +1690,7 @@
@@ -1703,7 +1703,7 @@ ipmi_picmg_clk_get(struct ipmi_intf * in
oemval2str( rsp->data[3], rsp->data[4],
picmg_clk_accuracy_vals));
@ -57,10 +57,10 @@ Index: ipmitool-1.8.15/lib/ipmi_picmg.c
}
}
}
Index: ipmitool-1.8.15/lib/ipmi_sdr.c
Index: ipmitool-1.8.16/lib/ipmi_sdr.c
===================================================================
--- ipmitool-1.8.15.orig/lib/ipmi_sdr.c 2015-01-14 14:27:59.120693459 +0100
+++ ipmitool-1.8.15/lib/ipmi_sdr.c 2015-01-14 14:28:08.508693609 +0100
--- ipmitool-1.8.16.orig/lib/ipmi_sdr.c 2015-11-22 13:50:54.000000000 +0100
+++ ipmitool-1.8.16/lib/ipmi_sdr.c 2016-02-25 13:25:42.095598619 +0100
@@ -52,6 +52,7 @@
#include <ipmitool/ipmi_entity.h>
#include <ipmitool/ipmi_constants.h>