minor, add generous fixed buffer for sysctl strings
[systembsd.git] / src / interfaces / hostnamed / hostnamed.c
index 3677acf1284c7a9f1519fb0b96776f0dca2bcd59..f1c3fb4b1b11e47cf17f3ef9fdc61343a4cd4e5a 100644 (file)
@@ -88,7 +88,7 @@ gchar *CHASSIS, *ICON;
 const struct SYSCTL_LOOKUP_TABLE chassis_indicator_table[] =
 {
     { "QEMU Virtual CPU",        "container", NULL,              FALSE, FALSE }, /* could be QEMU running in userspace or as part of KVM */
-    { "KVM",                     "vm",      , "drive-multidisk", FALSE, FALSE },
+    { "KVM",                     "vm",        "drive-multidisk", FALSE, FALSE },
     { "SmartDC HVM",             "vm",        "drive-multidisk", TRUE,  TRUE  }, /* oracle solaris kvm */
     { "VirtualBox",              "container", "drive-optical",   TRUE,  TRUE  },
     { "VMware, Inc.",            "container", "drive-optical",   TRUE,  TRUE  },
@@ -399,13 +399,21 @@ int main() {
 
 gboolean determine_chassis_and_icon() {
 
+    const size_t bufsize = 4096;    
+
     char *hwproduct, *hwmodel, *hwvendor, *hwmachine;
     size_t hwproduct_size, hwmodel_size, hwvendor_size, hwmachine_size;
     int hwproduct_name[2], hwmodel_name[2], hwvendor_name[2], hwmachine_name[2];
     unsigned int i;
     gboolean UNSURE_CHASSIS_FLAG, UNSURE_ICON_FLAG;
 
-    hwproduct = hwmodel = hwvendor = hwmachine = NULL;
+    hwproduct_size = hwmodel_size = hwvendor_size = hwmachine_size = bufsize;
+    UNSURE_CHASSIS_FLAG = UNSURE_ICON_FLAG = FALSE;
+
+    hwproduct = (char*)g_malloc0(4096);
+    hwmodel   = (char*)g_malloc0(4096);
+    hwvendor  = (char*)g_malloc0(4096);
+    hwmachine = (char*)g_malloc0(4096);
 
     hwproduct_name[0] = CTL_HW;
     hwproduct_name[1] = HW_PRODUCT;