]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[smbios] Default to "hex" type for non-string SMBIOS settings
authorMichael Brown <mcb30@ipxe.org>
Mon, 10 Sep 2012 14:29:36 +0000 (15:29 +0100)
committerMichael Brown <mcb30@ipxe.org>
Mon, 10 Sep 2012 14:29:36 +0000 (15:29 +0100)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/interface/smbios/smbios_settings.c

index 727970e964ead5c81c8e9544513f59ced62855ef..893b958e1277f64438984a2c0c9dc5cfb95e6842 100644 (file)
@@ -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;
                }
        }