ipmi_locate segfault on Focal (Dell iDRAC6/9)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
freeipmi (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Focal |
Fix Released
|
Medium
|
Unassigned | ||
Groovy |
Fix Released
|
Medium
|
Unassigned |
Bug Description
[Impact]
* A variable was badly initialized leading to a 0x0 pointer that was
accessed and segfaulting the program. In older versions this was
hidden due to other fails leading to an early exit on such platforms
(those we don't have to touch)
* The Patch was upstreamed and hereby backported (applies as-is) to Focal
[Test Case]
* There might be more affected systems, but he one we know so far
are dell idrac6/9 so please test on those if possible.
Obviously "regression tests" can be done on any system.
- run ipmi-locate
- without the fix it will segfault
[Regression Potential]
* The initialization is done right at the beginning of the function
and not accessed until the bad one we remove. So any user of that
variable would have crashed. Due to that I think we can't regress a
case that wasn't formerly segfaulting - which should be fine.
The one change of behavior is that if people just ran the command (not
checking output) and checked RC for further actions it might now on
some systems actually work and return a difference RC.
[Other Info]
* n/a
---
Ran ipmi-locate on a system running Focal. ipmi-locate returns the info I expect to see, and then segfaults (no core dump that I'm aware of).
ubuntu@mayapple:~$ sudo ipmi-locate --version
ipmi-locate - 1.6.4
Copyright (C) 2005-2015 FreeIPMI Core Team
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
ubuntu@mayapple:~$ sudo ipmi-locate
Probing KCS device using DMIDECODE... done
IPMI Version: 2.0
IPMI locate driver: DMIDECODE
IPMI interface: KCS
BMC driver device:
BMC I/O base address: 0xCA8
Register spacing: 4
Probing SMIC device using DMIDECODE... FAILED
Probing BT device using DMIDECODE... FAILED
Probing SSIF device using DMIDECODE... FAILED
Probing KCS device using SMBIOS... FAILED
Probing SMIC device using SMBIOS... FAILED
Probing BT device using SMBIOS... FAILED
Probing SSIF device using SMBIOS... FAILED
Segmentation fault
On a machine running Bionic, it returns similar data but does not segfault afterwards:
bladernr@weavile:~$ sudo ipmi-locate --version
ipmi-locate - 1.4.11
Copyright (C) 2005-2014 FreeIPMI Core Team
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
bladernr@weavile:~$ sudo ipmi-locate
Probing KCS device using DMIDECODE... done
IPMI Version: 2.0
IPMI locate driver: DMIDECODE
IPMI interface: KCS
BMC driver device:
BMC I/O base address: 0xCA2
Register spacing: 1
Probing SMIC device using DMIDECODE... FAILED
Probing BT device using DMIDECODE... FAILED
Probing SSIF device using DMIDECODE... FAILED
Probing KCS device using SMBIOS... FAILED
Probing SMIC device using SMBIOS... FAILED
Probing BT device using SMBIOS... FAILED
Probing SSIF device using SMBIOS... FAILED
Probing KCS device using ACPI... done
IPMI Version: 2.0
IPMI locate driver: ACPI
IPMI interface: KCS
BMC driver device:
BMC I/O base address: 0xCA3
Register spacing: 1
Probing SMIC device using ACPI... FAILED
Probing BT device using ACPI... FAILED
Probing SSIF device using ACPI... FAILED
Probing KCS device using PCI... FAILED
Probing SMIC device using PCI... FAILED
Probing BT device using PCI... FAILED
Probing SSIF device using PCI... FAILED
ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: freeipmi-tools 1.6.4-3ubuntu1
ProcVersionSign
Uname: Linux 5.4.0-26-generic x86_64
ApportVersion: 2.20.11-0ubuntu27
Architecture: amd64
CasperMD5CheckR
Date: Tue Apr 28 22:56:41 2020
ProcEnviron:
TERM=screen-
PATH=(custom, no user)
XDG_RUNTIME_
LANG=C.UTF-8
SHELL=/bin/bash
SourcePackage: freeipmi
UpgradeStatus: No upgrade log present (probably fresh install)
Related branches
- Andreas Hasenack: Approve
- Canonical Server: Pending requested
- git-ubuntu developers: Pending requested
-
Diff: 81 lines (+61/-0)3 files modifieddebian/changelog (+7/-0)
debian/patches/lp-1875771-libfreeipmi-fix-segfault-in-SPMI-parsing.patch (+53/-0)
debian/patches/series (+1/-0)
- Bryce Harrington (community): Approve
- Canonical Server: Pending requested
- git-ubuntu developers: Pending requested
-
Diff: 81 lines (+61/-0)3 files modifieddebian/changelog (+7/-0)
debian/patches/lp-1875771-libfreeipmi-fix-segfault-in-SPMI-parsing.patch (+53/-0)
debian/patches/series (+1/-0)
tags: | removed: server-triage-discuss |
Changed in freeipmi (Ubuntu): | |
importance: | Undecided → Medium |
summary: |
- ipmi_locate segfault on Focal + ipmi_locate segfault on Focal (Dell iDRAC6/9) |
description: | updated |
The issue appears to be with the version of freeipmi-tools in Focal.
I installed version 1.4.11 from Bionic on the Focal machine and ipmi-locate does not segfault: RELEASE= 20.04 CODENAME= focal DESCRIPTION= "Ubuntu 20.04 LTS"
ubuntu@mayapple:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_
DISTRIB_
DISTRIB_
ubuntu@mayapple:~$ sudo ipmi-locate --version
ipmi-locate - 1.4.11
Copyright (C) 2005-2014 FreeIPMI Core Team
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
ubuntu@mayapple:~$ sudo ipmi-locate
Probing KCS device using DMIDECODE... done
IPMI Version: 2.0
IPMI locate driver: DMIDECODE
IPMI interface: KCS
BMC driver device:
BMC I/O base address: 0xCA8
Register spacing: 4
Probing SMIC device using DMIDECODE... FAILED
Probing BT device using DMIDECODE... FAILED
Probing SSIF device using DMIDECODE... FAILED
Probing KCS device using SMBIOS... FAILED
Probing SMIC device using SMBIOS... FAILED
Probing BT device using SMBIOS... FAILED
Probing SSIF device using SMBIOS... FAILED
Probing KCS device using ACPI... FAILED
Probing SMIC device using ACPI... FAILED
Probing BT device using ACPI... FAILED
Probing SSIF device using ACPI... FAILED
Probing KCS device using PCI... FAILED
Probing SMIC device using PCI... FAILED
Probing BT device using PCI... FAILED
Probing SSIF device using PCI... FAILED