Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package freeipmi for openSUSE:Factory checked in at 2026-06-13 18:46:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/freeipmi (Old) and /work/SRC/openSUSE:Factory/.freeipmi.new.1981 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "freeipmi" Sat Jun 13 18:46:34 2026 rev:59 rq:1359002 version:1.6.18 Changes: -------- --- /work/SRC/openSUSE:Factory/freeipmi/freeipmi.changes 2026-03-27 06:40:00.854495813 +0100 +++ /work/SRC/openSUSE:Factory/.freeipmi.new.1981/freeipmi.changes 2026-06-13 18:47:54.174838897 +0200 @@ -1,0 +2,13 @@ +Mon Jun 8 20:19:03 UTC 2026 - Thomas Renninger <[email protected]> + +- Update to version 1.6.18: + * Fix bsc#1267605 - CVE-2026-50031: + + ipmi-oem/ipmi-oem-dell.c + (ipmi_oem_dell_get_active_directory_config): Fix potential stack + corruption. + + + ipmi-oem/ipmi-oem-fujitsu.c + (ipmi_oem_fujitsu_get_sel_entry_long_text): Fix potential buffer + overflow. + +------------------------------------------------------------------- Old: ---- freeipmi-1.6.17.tar.gz freeipmi-1.6.17.tar.gz.sig New: ---- freeipmi-1.6.18.tar.gz freeipmi-1.6.18.tar.gz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ freeipmi.spec ++++++ --- /var/tmp/diff_new_pack.InI7kF/_old 2026-06-13 18:47:55.818907200 +0200 +++ /var/tmp/diff_new_pack.InI7kF/_new 2026-06-13 18:47:55.822907367 +0200 @@ -37,7 +37,7 @@ %{!?_initddir: %global _initddir %{_sysconfdir}/init.d} Name: freeipmi -Version: 1.6.17 +Version: 1.6.18 Release: 0%{release} URL: http://www.gnu.org/software/freeipmi/ Source0: http://ftp.gnu.org/gnu/freeipmi/%{name}-%{srcversion}.tar.gz ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.InI7kF/_old 2026-06-13 18:47:55.850908529 +0200 +++ /var/tmp/diff_new_pack.InI7kF/_new 2026-06-13 18:47:55.850908529 +0200 @@ -1,5 +1,5 @@ -mtime: 1774434939 -commit: 7e0a23f0ae6ca862263c33ec3cdf2a4008a9efc8151bf2e8851412e5c87149cd +mtime: 1780990399 +commit: c8dcb444c0300c89d66facb8658ad14a185cbd39973d97b1ed2673a37cef1160 url: https://src.opensuse.org/SystemsManagement/freeipmi revision: main ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-06-09 09:33:19.000000000 +0200 @@ -0,0 +1 @@ +.osc ++++++ freeipmi-1.6.17.tar.gz -> freeipmi-1.6.18.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/ChangeLog new/freeipmi-1.6.18/ChangeLog --- old/freeipmi-1.6.17/ChangeLog 2026-03-11 19:07:37.000000000 +0100 +++ new/freeipmi-1.6.18/ChangeLog 2026-06-02 18:44:48.000000000 +0200 @@ -1,3 +1,27 @@ +2026-06-01 Albert Chu <[email protected]> + + * ipmi-oem/ipmi-oem-dell.c + (ipmi_oem_dell_get_active_directory_config): Fix potential stack + corruption. + + * ipmi-oem/ipmi-oem-fujitsu.c + (ipmi_oem_fujitsu_get_sel_entry_long_text): Fix potential buffer + overflow. + +2023-12-17 Albert Chu <[email protected]> + + * ipmi-sensors: support new "altbridging" workaround for Lenovo + SR650 v3 motherboards and Lenovo ThinkSystem servers + +2026-03-23 Albert Chu <[email protected]> + + * ipmi-oem/ipmi-oem-dell.c (ipmi_oem_dell_get_last_post_code), + ipmi-oem/ipmi-oem-supermicro.c + (ipmi_oem_supermicro_extra_firmware_info), + ipmi-oem/ipmi-oem-wistron.c + (ipmi_oem_wistron_read_proprietary_string): Fix potential buffer + overflow. + 2026-02-10 Boris Lytochkin <[email protected]> * ipmiconsole: Support --proxy. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/NEWS new/freeipmi-1.6.18/NEWS --- old/freeipmi-1.6.17/NEWS 2026-03-23 19:02:29.000000000 +0100 +++ new/freeipmi-1.6.18/NEWS 2026-06-02 18:45:12.000000000 +0200 @@ -1,3 +1,10 @@ +FreeIPMI 1.6.18 - 06/02/26 +-------------------------- +o Support new "altbridging" workaround in ipmi-sensors. +o Fix exploitable buffer overflows in the following ipmi-oem commands: + - ipmi-oem dell get-active-directory-config + - ipmi-oem fujitsu get-sel-entry-long-text + FreeIPMI 1.6.17 - 03/23/26 -------------------------- o Fix exploitable buffer overflows in the following ipmi-oem commands: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/common/parsecommon/parse-common.c new/freeipmi-1.6.18/common/parsecommon/parse-common.c --- old/freeipmi-1.6.17/common/parsecommon/parse-common.c 2026-03-11 19:07:37.000000000 +0100 +++ new/freeipmi-1.6.18/common/parsecommon/parse-common.c 2026-06-02 18:44:43.000000000 +0200 @@ -276,6 +276,9 @@ && !strcasecmp (tok, IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_ASSUME_BMC_OWNER_STR)) (*section_specific_workaround_flags) |= IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_ASSUME_BMC_OWNER; else if (section_specific_workaround_flags + && !strcasecmp (tok, IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_ALTERNATE_BRIDGING_STR)) + (*section_specific_workaround_flags) |= IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_ALTERNATE_BRIDGING; + else if (section_specific_workaround_flags && !strcasecmp (tok, IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_IGNORE_AUTH_CODE_STR)) (*section_specific_workaround_flags) |= IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_IGNORE_AUTH_CODE; else if (section_specific_workaround_flags diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/common/parsecommon/parse-common.h new/freeipmi-1.6.18/common/parsecommon/parse-common.h --- old/freeipmi-1.6.17/common/parsecommon/parse-common.h 2026-03-11 19:07:37.000000000 +0100 +++ new/freeipmi-1.6.18/common/parsecommon/parse-common.h 2026-06-02 18:44:43.000000000 +0200 @@ -105,24 +105,25 @@ #define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_DISCRETE_READING 0x00000100 #define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_IGNORE_SCANNING_DISABLED 0x00000200 #define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_ASSUME_BMC_OWNER 0x00000400 -#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_IGNORE_AUTH_CODE 0x00000800 +#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_ALTERNATE_BRIDGING 0x00000800 +#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_IGNORE_AUTH_CODE 0x00001000 /* ipmi-config */ -#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_SLOW_COMMIT 0x00001000 -#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_VERY_SLOW_COMMIT 0x00002000 -#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_SOL_CHANNEL_ASSUME_LAN_CHANNEL 0x00004000 +#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_SLOW_COMMIT 0x00002000 +#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_VERY_SLOW_COMMIT 0x00004000 +#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_SOL_CHANNEL_ASSUME_LAN_CHANNEL 0x00008000 /* bmc-watchdog */ -#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_IGNORE_STATE_FLAG 0x00008000 +#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_IGNORE_STATE_FLAG 0x00010000 /* ipmi-pet */ -#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_MALFORMED_ACK 0x0001000 +#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_MALFORMED_ACK 0x00020000 /* bmc-info */ -#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_GUID_FORMAT 0x0002000 +#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_GUID_FORMAT 0x00040000 /* ipmipower */ -#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_IPMIPING 0x0004000 +#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_IPMIPING 0x00080000 #define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_IGNORE_SOL_PAYLOAD_SIZE_STR "solpayloadsize" #define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_IGNORE_SOL_PORT_STR "solport" @@ -136,6 +137,7 @@ #define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_DISCRETE_READING_STR "discretereading" #define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_IGNORE_SCANNING_DISABLED_STR "ignorescanningdisabled" #define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_ASSUME_BMC_OWNER_STR "assumebmcowner" +#define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_ALTERNATE_BRIDGING_STR "altbridging" #define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_IGNORE_AUTH_CODE_STR "ignoreauthcode" #define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_SLOW_COMMIT_STR "slowcommit" #define IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_VERY_SLOW_COMMIT_STR "veryslowcommit" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/configure new/freeipmi-1.6.18/configure --- old/freeipmi-1.6.17/configure 2026-03-23 19:21:42.000000000 +0100 +++ new/freeipmi-1.6.18/configure 2026-06-02 18:49:26.000000000 +0200 @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Id: configure.ac,v 1.208 2010-08-06 21:02:29 chu11 Exp . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for freeipmi 1.6.17. +# Generated by GNU Autoconf 2.69 for freeipmi 1.6.18. # # Report bugs to <[email protected]>. # @@ -591,8 +591,8 @@ # Identity of this package. PACKAGE_NAME='freeipmi' PACKAGE_TARNAME='freeipmi' -PACKAGE_VERSION='1.6.17' -PACKAGE_STRING='freeipmi 1.6.17' +PACKAGE_VERSION='1.6.18' +PACKAGE_STRING='freeipmi 1.6.18' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1410,7 +1410,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures freeipmi 1.6.17 to adapt to many kinds of systems. +\`configure' configures freeipmi 1.6.18 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1480,7 +1480,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of freeipmi 1.6.17:";; + short | recursive ) echo "Configuration of freeipmi 1.6.18:";; esac cat <<\_ACEOF @@ -1622,7 +1622,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -freeipmi configure 1.6.17 +freeipmi configure 1.6.18 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2091,7 +2091,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by freeipmi $as_me 1.6.17, which was +It was created by freeipmi $as_me 1.6.18, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2447,7 +2447,7 @@ FREEIPMI_PACKAGE_VERSION_MAJOR=1 FREEIPMI_PACKAGE_VERSION_MINOR=6 -FREEIPMI_PACKAGE_VERSION_PATCH=17 +FREEIPMI_PACKAGE_VERSION_PATCH=18 @@ -2973,7 +2973,7 @@ # Define the identity of the package. PACKAGE='freeipmi' - VERSION='1.6.17' + VERSION='1.6.18' cat >>confdefs.h <<_ACEOF @@ -3335,7 +3335,7 @@ # release, then set age to 0. # LIBFREEIPMI_CURRENT=19 -LIBFREEIPMI_REVISION=15 +LIBFREEIPMI_REVISION=16 LIBFREEIPMI_AGE=2 LIBFREEIPMI_VERSION=$LIBFREEIPMI_CURRENT.$LIBFREEIPMI_REVISION.$LIBFREEIPMI_AGE @@ -3357,7 +3357,7 @@ LIBFREEIPMI_VERSION_MAJOR=6 LIBFREEIPMI_VERSION_MINOR=2 -LIBFREEIPMI_VERSION_PATCH=14 +LIBFREEIPMI_VERSION_PATCH=15 @@ -3419,7 +3419,7 @@ # release, then set age to 0. # LIBIPMIMONITORING_CURRENT=6 -LIBIPMIMONITORING_REVISION=9 +LIBIPMIMONITORING_REVISION=10 LIBIPMIMONITORING_AGE=0 LIBIPMIMONITORING_VERSION_INFO=$LIBIPMIMONITORING_CURRENT:$LIBIPMIMONITORING_REVISION:$LIBIPMIMONITORING_AGE @@ -3439,7 +3439,7 @@ LIBIPMIMONITORING_VERSION_MAJOR=1 LIBIPMIMONITORING_VERSION_MINOR=0 -LIBIPMIMONITORING_VERSION_PATCH=10 +LIBIPMIMONITORING_VERSION_PATCH=11 @@ -16628,7 +16628,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by freeipmi $as_me 1.6.17, which was +This file was extended by freeipmi $as_me 1.6.18, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16694,7 +16694,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -freeipmi config.status 1.6.17 +freeipmi config.status 1.6.18 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/configure.ac new/freeipmi-1.6.18/configure.ac --- old/freeipmi-1.6.17/configure.ac 2026-03-23 19:04:36.000000000 +0100 +++ new/freeipmi-1.6.18/configure.ac 2026-06-02 18:47:10.000000000 +0200 @@ -1,11 +1,11 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([freeipmi],[1.6.17],[[email protected]]) +AC_INIT([freeipmi],[1.6.18],[[email protected]]) AC_REVISION([$Id: configure.ac,v 1.208 2010-08-06 21:02:29 chu11 Exp $]) AC_CONFIG_MACRO_DIR([config]) FREEIPMI_PACKAGE_VERSION_MAJOR=1 FREEIPMI_PACKAGE_VERSION_MINOR=6 -FREEIPMI_PACKAGE_VERSION_PATCH=17 +FREEIPMI_PACKAGE_VERSION_PATCH=18 AC_SUBST(FREEIPMI_PACKAGE_VERSION_MAJOR) AC_SUBST(FREEIPMI_PACKAGE_VERSION_MINOR) @@ -135,7 +135,7 @@ # release, then set age to 0. # LIBFREEIPMI_CURRENT=19 -LIBFREEIPMI_REVISION=15 +LIBFREEIPMI_REVISION=16 LIBFREEIPMI_AGE=2 LIBFREEIPMI_VERSION=$LIBFREEIPMI_CURRENT.$LIBFREEIPMI_REVISION.$LIBFREEIPMI_AGE @@ -157,7 +157,7 @@ LIBFREEIPMI_VERSION_MAJOR=6 LIBFREEIPMI_VERSION_MINOR=2 -LIBFREEIPMI_VERSION_PATCH=14 +LIBFREEIPMI_VERSION_PATCH=15 AC_SUBST(LIBFREEIPMI_VERSION_MAJOR) AC_SUBST(LIBFREEIPMI_VERSION_MINOR) @@ -219,7 +219,7 @@ # release, then set age to 0. # LIBIPMIMONITORING_CURRENT=6 -LIBIPMIMONITORING_REVISION=9 +LIBIPMIMONITORING_REVISION=10 LIBIPMIMONITORING_AGE=0 LIBIPMIMONITORING_VERSION_INFO=$LIBIPMIMONITORING_CURRENT:$LIBIPMIMONITORING_REVISION:$LIBIPMIMONITORING_AGE AC_SUBST([LIBIPMIMONITORING_VERSION_INFO]) @@ -239,7 +239,7 @@ LIBIPMIMONITORING_VERSION_MAJOR=1 LIBIPMIMONITORING_VERSION_MINOR=0 -LIBIPMIMONITORING_VERSION_PATCH=10 +LIBIPMIMONITORING_VERSION_PATCH=11 AC_SUBST(LIBIPMIMONITORING_VERSION_MAJOR) AC_SUBST(LIBIPMIMONITORING_VERSION_MINOR) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/contrib/libipmimonitoring/ipmimonitoring-sensors.c new/freeipmi-1.6.18/contrib/libipmimonitoring/ipmimonitoring-sensors.c --- old/freeipmi-1.6.17/contrib/libipmimonitoring/ipmimonitoring-sensors.c 2026-03-11 19:07:37.000000000 +0100 +++ new/freeipmi-1.6.18/contrib/libipmimonitoring/ipmimonitoring-sensors.c 2026-06-02 18:44:43.000000000 +0200 @@ -106,6 +106,7 @@ int discrete_reading = 0; int ignore_scanning_disabled = 0; int assume_bmc_owner = 0; +int altbridging = 0; int entity_sensor_names = 0; /* Initialization flags @@ -299,6 +300,9 @@ if (assume_bmc_owner) sensor_reading_flags |= IPMI_MONITORING_SENSOR_READING_FLAGS_ASSUME_BMC_OWNER; + if (altbridging) + sensor_reading_flags |= IPMI_MONITORING_SENSOR_READING_FLAGS_ALTERNATE_BRIDGING; + if (entity_sensor_names) sensor_reading_flags |= IPMI_MONITORING_SENSOR_READING_FLAGS_ENTITY_SENSOR_NAMES; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/doc/freeipmi-faq.info new/freeipmi-1.6.18/doc/freeipmi-faq.info --- old/freeipmi-1.6.17/doc/freeipmi-faq.info 2026-03-23 19:24:17.000000000 +0100 +++ new/freeipmi-1.6.18/doc/freeipmi-faq.info 2026-06-02 18:50:44.000000000 +0200 @@ -1,7 +1,7 @@ This is freeipmi-faq.info, produced by makeinfo version 6.5 from freeipmi-faq.texi. -This manual is for FreeIPMI (version 1.6.17, 27 January 2024). +This manual is for FreeIPMI (version 1.6.18, 27 January 2024). Copyright (C) 2006-2012 FreeIPMI Core Team Permission is granted to copy, distribute and/or modify this @@ -21,8 +21,8 @@ Frequently Asked Questions on *FreeIPMI* - This edition of the documentation was last updated on March 23, 2026 -for release 1.6.17 of the FreeIPMI. + This edition of the documentation was last updated on June 2, 2026 +for release 1.6.18 of the FreeIPMI. * Menu: @@ -1028,33 +1028,33 @@ Tag Table: Node: Top690 -Node: What is IPMI?2299 -Node: What is FreeIPMI?3441 -Node: How did FreeIPMI start?3974 -Node: What operating systems does FreeIPMI run on?5339 -Node: FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil6091 -Node: What is special about FreeIPMI?6896 -Node: Does my system support IPMI?13953 -Node: How do I compile FreeIPMI?15946 -Node: libgcrypt requirement16307 -Node: x86-64 Compilation16946 -Node: Installing FreeIPMI on FreeBSD17630 -Node: What are some IPMI terminology or acronyms I should be aware of?18270 -Node: What setup is needed for FreeIPMI to communicate over LAN?21296 -Node: What setup is needed for Serial over LAN (SOL) or Ipmiconsole?21888 -Node: Do I need to install or configure a driver to perform IPMI inband?23792 -Node: SSIF Driver Configuration25505 -Node: How do you setup Powerman with ipmipower?27101 -Node: How do you setup Conman with ipmiconsole or libipmiconsole?30391 -Node: How do you setup Conserver with libipmiconsole?32370 -Node: How do you setup Ganglia or Nagios to monitor IPMI sensors via FreeIPMI?33356 -Node: Why are times reported by FreeIPMI tools wrong?33997 -Node: Why is the IPMI kernel driver faster than the KCS driver?34983 -Node: Why is the output from FreeIPMI different than another software?35983 -Node: Why are there so many IPMI compliance bugs?41378 -Node: How do I get around an IPMI compliance bug on my motherboard?42476 -Node: Why am I seeing so many 'internal IPMI error' or 'driver busy' messages?43289 -Node: How do I program with the FreeIPMI libraries?46415 -Node: Where can I get additional help or support?47758 +Node: What is IPMI?2297 +Node: What is FreeIPMI?3439 +Node: How did FreeIPMI start?3972 +Node: What operating systems does FreeIPMI run on?5337 +Node: FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil6089 +Node: What is special about FreeIPMI?6894 +Node: Does my system support IPMI?13951 +Node: How do I compile FreeIPMI?15944 +Node: libgcrypt requirement16305 +Node: x86-64 Compilation16944 +Node: Installing FreeIPMI on FreeBSD17628 +Node: What are some IPMI terminology or acronyms I should be aware of?18268 +Node: What setup is needed for FreeIPMI to communicate over LAN?21294 +Node: What setup is needed for Serial over LAN (SOL) or Ipmiconsole?21886 +Node: Do I need to install or configure a driver to perform IPMI inband?23790 +Node: SSIF Driver Configuration25503 +Node: How do you setup Powerman with ipmipower?27099 +Node: How do you setup Conman with ipmiconsole or libipmiconsole?30389 +Node: How do you setup Conserver with libipmiconsole?32368 +Node: How do you setup Ganglia or Nagios to monitor IPMI sensors via FreeIPMI?33354 +Node: Why are times reported by FreeIPMI tools wrong?33995 +Node: Why is the IPMI kernel driver faster than the KCS driver?34981 +Node: Why is the output from FreeIPMI different than another software?35981 +Node: Why are there so many IPMI compliance bugs?41376 +Node: How do I get around an IPMI compliance bug on my motherboard?42474 +Node: Why am I seeing so many 'internal IPMI error' or 'driver busy' messages?43287 +Node: How do I program with the FreeIPMI libraries?46413 +Node: Where can I get additional help or support?47756 End Tag Table diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/doc/stamp-vti new/freeipmi-1.6.18/doc/stamp-vti --- old/freeipmi-1.6.17/doc/stamp-vti 2026-03-23 19:22:45.000000000 +0100 +++ new/freeipmi-1.6.18/doc/stamp-vti 2026-06-02 18:50:36.000000000 +0200 @@ -1,4 +1,4 @@ @set UPDATED 27 January 2024 @set UPDATED-MONTH January 2024 -@set EDITION 1.6.17 -@set VERSION 1.6.17 +@set EDITION 1.6.18 +@set VERSION 1.6.18 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/doc/version-faq.texi new/freeipmi-1.6.18/doc/version-faq.texi --- old/freeipmi-1.6.17/doc/version-faq.texi 2026-03-23 19:22:45.000000000 +0100 +++ new/freeipmi-1.6.18/doc/version-faq.texi 2026-06-02 18:50:36.000000000 +0200 @@ -1,4 +1,4 @@ @set UPDATED 27 January 2024 @set UPDATED-MONTH January 2024 -@set EDITION 1.6.17 -@set VERSION 1.6.17 +@set EDITION 1.6.18 +@set VERSION 1.6.18 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/freeipmi.spec new/freeipmi-1.6.18/freeipmi.spec --- old/freeipmi-1.6.17/freeipmi.spec 2026-03-23 19:21:51.000000000 +0100 +++ new/freeipmi-1.6.18/freeipmi.spec 2026-06-02 18:49:34.000000000 +0200 @@ -3,7 +3,7 @@ # %define name freeipmi -%define version 1.6.17 +%define version 1.6.18 %if %{?_with_debug:1}%{!?_with_debug:0} %define release 1.debug%{?dist} %else @@ -573,7 +573,7 @@ - Obsolete old subpackage freeipmi-ipmimonitoring. * Tue Dec 18 2007 Albert Chu <[email protected]> 0.6.0 -- Use %{version} instead of 1.6.17 for substitution in paths. +- Use %{version} instead of 1.6.18 for substitution in paths. * Fri Dec 14 2007 Albert Chu <[email protected]> 0.6.0 - Update packaging for libfreeipmi reorganization diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/ipmi-oem/ipmi-oem-dell.c new/freeipmi-1.6.18/ipmi-oem/ipmi-oem-dell.c --- old/freeipmi-1.6.17/ipmi-oem/ipmi-oem-dell.c 2026-03-11 19:07:42.000000000 +0100 +++ new/freeipmi-1.6.18/ipmi-oem/ipmi-oem-dell.c 2026-06-02 18:44:48.000000000 +0200 @@ -4207,7 +4207,7 @@ int ipmi_oem_dell_get_active_directory_config (ipmi_oem_state_data_t *state_data) { - uint8_t token_data[IPMI_OEM_MAX_BYTES]; + uint8_t token_data[IPMI_OEM_DELL_TOKEN_DATA_MAX]; uint16_t expected_valid_field_mask = IPMI_OEM_DELL_EXTENDED_CONFIG_AD_CONFIGURATION_ALL_FIELD_MASK; unsigned int token_data_read = 0; unsigned int min_token_data_read = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/ipmi-oem/ipmi-oem-fujitsu.c new/freeipmi-1.6.18/ipmi-oem/ipmi-oem-fujitsu.c --- old/freeipmi-1.6.17/ipmi-oem/ipmi-oem-fujitsu.c 2024-01-27 19:16:19.000000000 +0100 +++ new/freeipmi-1.6.18/ipmi-oem/ipmi-oem-fujitsu.c 2026-06-02 18:44:48.000000000 +0200 @@ -1384,6 +1384,8 @@ } data_length = bytes_rs[15]; + if (data_length > IPMI_OEM_FUJITSU_SEL_ENTRY_LONG_TEXT_MAX_DATA_LENGTH) + data_length = IPMI_OEM_FUJITSU_SEL_ENTRY_LONG_TEXT_MAX_DATA_LENGTH; /* Every response should be NUL terminated, not just the last * component. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/ipmi-sensors/ipmi-sensors.c new/freeipmi-1.6.18/ipmi-sensors/ipmi-sensors.c --- old/freeipmi-1.6.17/ipmi-sensors/ipmi-sensors.c 2026-03-11 19:07:37.000000000 +0100 +++ new/freeipmi-1.6.18/ipmi-sensors/ipmi-sensors.c 2026-06-02 18:44:43.000000000 +0200 @@ -1438,6 +1438,9 @@ if (state_data.prog_data->args->common_args.section_specific_workaround_flags & IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_ASSUME_BMC_OWNER) sensor_read_flags |= IPMI_SENSOR_READ_FLAGS_ASSUME_BMC_OWNER; + if (state_data.prog_data->args->common_args.section_specific_workaround_flags & IPMI_PARSE_SECTION_SPECIFIC_WORKAROUND_FLAGS_ALTERNATE_BRIDGING) + sensor_read_flags |= IPMI_SENSOR_READ_FLAGS_ALTERNATE_BRIDGING; + if (sensor_read_flags) { /* Don't error out, if this fails we can still continue */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/libfreeipmi/include/freeipmi/sensor-read/ipmi-sensor-read.h new/freeipmi-1.6.18/libfreeipmi/include/freeipmi/sensor-read/ipmi-sensor-read.h --- old/freeipmi-1.6.17/libfreeipmi/include/freeipmi/sensor-read/ipmi-sensor-read.h 2026-03-11 19:07:37.000000000 +0100 +++ new/freeipmi-1.6.18/libfreeipmi/include/freeipmi/sensor-read/ipmi-sensor-read.h 2026-06-02 18:44:43.000000000 +0200 @@ -59,6 +59,7 @@ #define IPMI_SENSOR_READ_FLAGS_DISCRETE_READING 0x0002 #define IPMI_SENSOR_READ_FLAGS_IGNORE_SCANNING_DISABLED 0x0004 #define IPMI_SENSOR_READ_FLAGS_ASSUME_BMC_OWNER 0x0008 +#define IPMI_SENSOR_READ_FLAGS_ALTERNATE_BRIDGING 0x0010 typedef struct ipmi_sensor_read_ctx *ipmi_sensor_read_ctx_t; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/libfreeipmi/sensor-read/ipmi-sensor-read-defs.h new/freeipmi-1.6.18/libfreeipmi/sensor-read/ipmi-sensor-read-defs.h --- old/freeipmi-1.6.17/libfreeipmi/sensor-read/ipmi-sensor-read-defs.h 2026-03-11 19:07:37.000000000 +0100 +++ new/freeipmi-1.6.18/libfreeipmi/sensor-read/ipmi-sensor-read-defs.h 2026-06-01 18:41:54.000000000 +0200 @@ -41,7 +41,8 @@ (IPMI_SENSOR_READ_FLAGS_BRIDGE_SENSORS \ | IPMI_SENSOR_READ_FLAGS_DISCRETE_READING \ | IPMI_SENSOR_READ_FLAGS_IGNORE_SCANNING_DISABLED \ - | IPMI_SENSOR_READ_FLAGS_ASSUME_BMC_OWNER) + | IPMI_SENSOR_READ_FLAGS_ASSUME_BMC_OWNER \ + | IPMI_SENSOR_READ_FLAGS_ALTERNATE_BRIDGING) struct ipmi_sensor_read_ctx { uint32_t magic; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/libfreeipmi/sensor-read/ipmi-sensor-read.c new/freeipmi-1.6.18/libfreeipmi/sensor-read/ipmi-sensor-read.c --- old/freeipmi-1.6.17/libfreeipmi/sensor-read/ipmi-sensor-read.c 2026-03-11 19:07:37.000000000 +0100 +++ new/freeipmi-1.6.18/libfreeipmi/sensor-read/ipmi-sensor-read.c 2026-06-02 18:44:44.000000000 +0200 @@ -41,6 +41,7 @@ #include "freeipmi/spec/ipmi-channel-spec.h" #include "freeipmi/spec/ipmi-comp-code-spec.h" #include "freeipmi/spec/ipmi-ipmb-lun-spec.h" +#include "freeipmi/spec/ipmi-netfn-spec.h" #include "freeipmi/spec/ipmi-slave-address-spec.h" #include "freeipmi/spec/ipmi-sensor-units-spec.h" #include "freeipmi/util/ipmi-sensor-and-event-code-tables-util.h" @@ -331,6 +332,50 @@ } int +_get_sensor_reading_not_bmc_lun (ipmi_sensor_read_ctx_t ctx, + uint8_t sensor_owner_lun, + uint8_t sensor_number, + fiid_obj_t obj_cmd_rs) +{ + fiid_obj_t obj_cmd_rq = NULL; + int rv = -1; + + assert (ctx); + assert (ctx->magic == IPMI_SENSOR_READ_CTX_MAGIC); + assert (obj_cmd_rs); + + if (!(obj_cmd_rq = fiid_obj_create (tmpl_cmd_get_sensor_reading_rq))) + { + SENSOR_READ_ERRNO_TO_SENSOR_READ_ERRNUM (ctx, errno); + goto cleanup; + } + + if (fill_cmd_get_sensor_reading (sensor_number, + obj_cmd_rq) < 0) + { + SENSOR_READ_ERRNO_TO_SENSOR_READ_ERRNUM (ctx, errno); + goto cleanup; + } + + if (ipmi_cmd (ctx->ipmi_ctx, + sensor_owner_lun, + IPMI_NET_FN_SENSOR_EVENT_RQ, + obj_cmd_rq, + obj_cmd_rs) < 0) + { + if (_sensor_reading_corner_case_checks (ctx, obj_cmd_rs) < 0) + goto cleanup; + SENSOR_READ_SET_ERRNUM (ctx, IPMI_SENSOR_READ_ERR_IPMI_ERROR); + goto cleanup; + } + + rv = 0; + cleanup: + fiid_obj_destroy (obj_cmd_rq); + return (rv); +} + +int _get_sensor_reading_ipmb (ipmi_sensor_read_ctx_t ctx, uint8_t slave_address, uint8_t lun, @@ -562,7 +607,54 @@ * On some motherboards, the sensor owner is invalid. The sensor * owner as atually the BMC. */ - if (!(ctx->flags & IPMI_SENSOR_READ_FLAGS_ASSUME_BMC_OWNER)) + if (ctx->flags & IPMI_SENSOR_READ_FLAGS_ASSUME_BMC_OWNER) + { + if (_get_sensor_reading (ctx, + sensor_number, + obj_cmd_rs) < 0) + goto cleanup; + } + /* IPMI Workaround + * + * Discovered on Lenovo SR650 v3 + * + * Normal bridging doesn't work. Instead just pass to + * target lun in the message header. + * + * achu: according to ipmitool code, this should work on most + * systems. Although I don't remember why, it was done differently + * in FreeIPMI. Perhaps some random system(s) did not work with + * this technique in the current bridging technique was used instead. + */ + else if (ctx->flags & IPMI_SENSOR_READ_FLAGS_ALTERNATE_BRIDGING) + { + if (slave_address != IPMI_SLAVE_ADDRESS_BMC) + { + if (_get_sensor_reading_ipmb (ctx, + slave_address, + sensor_owner_lun, + channel_number, + sensor_number, + obj_cmd_rs) < 0) + goto cleanup; + } + else if (sensor_owner_lun != IPMI_BMC_IPMB_LUN_BMC) + { + if (_get_sensor_reading_not_bmc_lun (ctx, + sensor_owner_lun, + sensor_number, + obj_cmd_rs) < 0) + goto cleanup; + } + else + { + if (_get_sensor_reading (ctx, + sensor_number, + obj_cmd_rs) < 0) + goto cleanup; + } + } + else { if (slave_address == IPMI_SLAVE_ADDRESS_BMC && sensor_owner_lun == IPMI_BMC_IPMB_LUN_BMC) { @@ -582,13 +674,6 @@ goto cleanup; } } - else - { - if (_get_sensor_reading (ctx, - sensor_number, - obj_cmd_rs) < 0) - goto cleanup; - } /* * IPMI Workaround (achu) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/libipmimonitoring/ipmi_monitoring.c new/freeipmi-1.6.18/libipmimonitoring/ipmi_monitoring.c --- old/freeipmi-1.6.17/libipmimonitoring/ipmi_monitoring.c 2026-03-11 19:07:37.000000000 +0100 +++ new/freeipmi-1.6.18/libipmimonitoring/ipmi_monitoring.c 2026-06-02 18:44:44.000000000 +0200 @@ -1264,6 +1264,9 @@ if (sensor_reading_flags & IPMI_MONITORING_SENSOR_READING_FLAGS_ASSUME_BMC_OWNER) sensor_read_ctx_flags |= IPMI_SENSOR_READ_FLAGS_ASSUME_BMC_OWNER; + if (sensor_reading_flags & IPMI_MONITORING_SENSOR_READING_FLAGS_ALTERNATE_BRIDGING) + sensor_read_ctx_flags |= IPMI_SENSOR_READ_FLAGS_ALTERNATE_BRIDGING; + if (sensor_read_ctx_flags) { if (ipmi_sensor_read_ctx_set_flags (c->sensor_read_ctx, sensor_read_ctx_flags) < 0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/libipmimonitoring/ipmi_monitoring.h.in new/freeipmi-1.6.18/libipmimonitoring/ipmi_monitoring.h.in --- old/freeipmi-1.6.17/libipmimonitoring/ipmi_monitoring.h.in 2026-03-11 19:07:37.000000000 +0100 +++ new/freeipmi-1.6.18/libipmimonitoring/ipmi_monitoring.h.in 2026-06-02 18:44:44.000000000 +0200 @@ -318,6 +318,7 @@ IPMI_MONITORING_SENSOR_READING_FLAGS_ASSUME_BMC_OWNER = 0x00000080, IPMI_MONITORING_SENSOR_READING_FLAGS_ENTITY_SENSOR_NAMES = 0x00000100, IPMI_MONITORING_SENSOR_READING_FLAGS_ASSUME_MAX_SDR_RECORD_COUNT = 0x00000200, + IPMI_MONITORING_SENSOR_READING_FLAGS_ALTERNATE_BRIDGING = 0x00000400, IPMI_MONITORING_SENSOR_READING_FLAGS_IGNORE_UNREADABLE_SENSORS = 0x00000002, /* legacy macro */ }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/libipmimonitoring/ipmi_monitoring_defs.h new/freeipmi-1.6.18/libipmimonitoring/ipmi_monitoring_defs.h --- old/freeipmi-1.6.17/libipmimonitoring/ipmi_monitoring_defs.h 2026-03-11 19:07:37.000000000 +0100 +++ new/freeipmi-1.6.18/libipmimonitoring/ipmi_monitoring_defs.h 2026-06-02 18:44:44.000000000 +0200 @@ -124,7 +124,8 @@ | IPMI_MONITORING_SENSOR_READING_FLAGS_IGNORE_SCANNING_DISABLED \ | IPMI_MONITORING_SENSOR_READING_FLAGS_ASSUME_BMC_OWNER \ | IPMI_MONITORING_SENSOR_READING_FLAGS_ENTITY_SENSOR_NAMES \ - | IPMI_MONITORING_SENSOR_READING_FLAGS_ASSUME_MAX_SDR_RECORD_COUNT) + | IPMI_MONITORING_SENSOR_READING_FLAGS_ASSUME_MAX_SDR_RECORD_COUNT \ + | IPMI_MONITORING_SENSOR_READING_FLAGS_ALTERNATE_BRIDGING) #define IPMI_MONITORING_AUTHENTICATION_TYPE_DEFAULT IPMI_AUTHENTICATION_TYPE_MD5 #define IPMI_MONITORING_PRIVILEGE_LEVEL_DEFAULT IPMI_PRIVILEGE_LEVEL_USER diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/man/freeipmi.conf.5.pre.in new/freeipmi-1.6.18/man/freeipmi.conf.5.pre.in --- old/freeipmi-1.6.17/man/freeipmi.conf.5.pre.in 2026-03-11 19:07:37.000000000 +0100 +++ new/freeipmi-1.6.18/man/freeipmi.conf.5.pre.in 2026-06-02 18:44:44.000000000 +0200 @@ -122,7 +122,7 @@ assumemaxsdrrecordcount, solpayloadsize, solport, solstatus, solchannelsupport, serialalertsdeferred, solpacketseq, skipchecks, assumesystemevent, discretereading, ignorescanningdisabled, -assumebmcowner, ignoreauthcode, slowcommit, veryslowcommit, +assumebmcowner, albridging, ignoreauthcode, slowcommit, veryslowcommit, solchannelassumelanchannel, ignorestateflag, malformedack, guidformat, ipmiping. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/freeipmi-1.6.17/man/ipmi-sensors.8.pre.in new/freeipmi-1.6.18/man/ipmi-sensors.8.pre.in --- old/freeipmi-1.6.17/man/ipmi-sensors.8.pre.in 2026-03-11 19:07:37.000000000 +0100 +++ new/freeipmi-1.6.18/man/ipmi-sensors.8.pre.in 2026-06-02 18:44:44.000000000 +0200 @@ -234,6 +234,13 @@ as "N/A" even if they should be available. This option is confirmed to work around issues on Fujitsu RX300 and Fujitsu RX300S2 motherboards. .LP +\fIaltbridging\fR - This workaround option will attempt alternate +bridging logic that does not work on some motherboards. This problem +may exist on your motherboard if \fB\-\-bridge\-sensors\fR does not +work and sensors are listed as "N/A" even if they should be +available. This option is confirmed to work around issues on Lenovo +SR650 v3 motherboards and Lenovo ThinkSystem servers. +.LP \fIignoreauthcode\fR - This workaround option will allow sensor readings to be read if the remote machine is invalidly calculating authentication codes (i.e. authentication hashes) when communicating
