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.
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);
g_print( "invalid table address\n");
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 (!de_table)
else
if (dell_supported != 0xDE)
g_print( "not supported, dell supported != de\n");
g_print( "supported\ n");
else
}
----