OK so my suspicion based upon that is that by checking a table that
doesn't exist it's defaulting to 0x00, which for you happens to have DE
for the first byte. Can you please confirm my suspicions by doing this:
Compile the following test application and run it, share your output
back. I expect that it will return an invalid table address. If it
does, I'll make a fix in fwupd for this for you.
# gcc -o test test.c -lsmbios_c `pkg-config glib-2.0 --cflags --libs` &&
sudo ./test
----
#include <smbios_c/smbios.h>
#include <glib/gstdio.h>
struct smbios_struct
{
u8 type;
u8 length;
u16 handle;
};
int main(void)
{
guint8 dell_supported = 0;
struct smbios_struct *de_table;
de_table = smbios_get_next_struct_by_type (0, 0xED);
if (!de_table)
g_print("invalid table address\n");
else
g_print("de_table: %d %d %d\n", de_table->type,
de_table->length, de_table->handle);
smbios_struct_get_data (de_table, &(dell_supported), 0x00,
sizeof(guint8));
if (dell_supported != 0xDE)
g_print("not supported, dell supported != de\n");
else
g_print("supported\n");
}
----
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1671570
Title:
fwupd crashed with SIGSEGV in fu_plugin_synapticsmst_enumerate()
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/fwupd/+bug/1671570/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs