Print this page
10145 smbios_info_boot() gets NULL check wrong
@@ -19,11 +19,11 @@
* CDDL HEADER END
*/
/*
* Copyright 2015 OmniTI Computer Consulting, Inc. All rights reserved.
- * Copyright (c) 2017, Joyent, Inc.
+ * Copyright (c) 2018, Joyent, Inc.
* Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
@@ -981,17 +981,19 @@
id_t
smbios_info_boot(smbios_hdl_t *shp, smbios_boot_t *bp)
{
const smb_struct_t *stp = smb_lookup_type(shp, SMB_TYPE_BOOT);
- const smb_boot_t *b = (smb_boot_t *)(uintptr_t)stp->smbst_hdr;
+ const smb_boot_t *b;
if (stp == NULL)
return (-1); /* errno is set for us */
bzero(bp, sizeof (smbios_boot_t));
+ b = (smb_boot_t *)(uintptr_t)stp->smbst_hdr;
+
bp->smbt_status = b->smbbo_status[0];
bp->smbt_size = stp->smbst_hdr->smbh_len - sizeof (smb_boot_t);
bp->smbt_data = bp->smbt_size ? &b->smbbo_status[1] : NULL;
return (stp->smbst_hdr->smbh_hdl);