Waaaaay back it seems it set this to zero for a reason.
http://git.savannah.gnu.org/cgit/freeipmi.git/commit/?id=68ed819225bdb529f34baca74e499a9645da5197

acpi_table was a global vaiable before and the predecessor of
"_ipmi_acpi_get_table" called "ipmi_acpi_get_table" was called with an &
operator.

+      if (ipmi_acpi_get_table (table_address, signature, 
+                              &acpi_table, 
+                              &acpi_table_length) != 0)

Back then it cleared the former value, just as today line 1308 still
does with "*acpi_table = NULL;" (clears the value not the pointer).

Things changed a lot since then and as Bryce stated
"_ipmi_acpi_get_table" expects malloc'ed memory which it isn't anymore
after setting the pointer itself back to NULL.

The last piece to the puzzle is why it wasn't broken before as Jeff reported 
Bionic to work.
This is true, but the error we found is there.

It has an early exit in "_ipmi_acpi_get_table_dev_mem" before it gets to the 
bad code.
In Bionic _ipmi_acpi_get_rsdp always returns -1 and never finds anything.
This was fixed by the massive cleanup of
http://git.savannah.gnu.org/cgit/freeipmi.git/commit/?id=094cd5ce63aff8597ff8f45f2efd014d24995747

That is in freeipmi since 1.6.0 and unblocks the code in Focal to reach
the bad acpi_table re-initialization.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1875771

Title:
  ipmi_locate segfault on Focal (Dell iDRAC6/9)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/freeipmi/+bug/1875771/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to