diff options
author | Michael Brown <mcb30@ipxe.org> | 2012-09-10 15:29:36 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2012-09-10 15:29:36 +0100 |
commit | c4500fb7cab08beabeee5c2d1e35f964764a7045 (patch) | |
tree | 402cf1a6a5b90fe0f948f4fc08c82f744a82b5d2 /src/interface/smbios | |
parent | 25ec56e0ecaa516a790fc409798e031af4bba650 (diff) | |
download | ipxe-c4500fb7cab08beabeee5c2d1e35f964764a7045.tar.gz |
[smbios] Default to "hex" type for non-string SMBIOS settings
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/interface/smbios')
-rw-r--r-- | src/interface/smbios/smbios_settings.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/interface/smbios/smbios_settings.c b/src/interface/smbios/smbios_settings.c index 727970e9..893b958e 100644 --- a/src/interface/smbios/smbios_settings.c +++ b/src/interface/smbios/smbios_settings.c @@ -120,14 +120,21 @@ static int smbios_fetch ( struct settings *settings __unused, if ( tag_len == 0 ) { /* String */ - return read_smbios_string ( &structure, - buf[tag_offset], - data, len ); + if ( ( rc = read_smbios_string ( &structure, + buf[tag_offset], + data, len ) ) < 0 ) { + return rc; + } + if ( ! setting->type ) + setting->type = &setting_type_string; + return rc; } else { /* Raw data */ if ( len > tag_len ) len = tag_len; memcpy ( data, &buf[tag_offset], len ); + if ( ! setting->type ) + setting->type = &setting_type_hex; return tag_len; } } |