data_len -= 18;
vp = pairmake("SoH-MS-Machine-OS-vendor", "Microsoft", T_OP_EQ);
+ if (!vp) return 0;
pairadd(&sohvp, vp);
vp = pairmake("SoH-MS-Machine-OS-version", NULL, T_OP_EQ);
+ if (!vp) return 0;
+
vp->vp_integer = soh_pull_be_32(p); p+=4;
pairadd(&sohvp, vp);
vp = pairmake("SoH-MS-Machine-OS-release", NULL, T_OP_EQ);
+ if (!vp) return 0;
+
vp->vp_integer = soh_pull_be_32(p); p+=4;
pairadd(&sohvp, vp);
vp = pairmake("SoH-MS-Machine-OS-build", NULL, T_OP_EQ);
+ if (!vp) return 0;
+
vp->vp_integer = soh_pull_be_32(p); p+=4;
pairadd(&sohvp, vp);
vp = pairmake("SoH-MS-Machine-SP-version", NULL, T_OP_EQ);
+ if (!vp) return 0;
+
vp->vp_integer = soh_pull_be_16(p); p+=2;
pairadd(&sohvp, vp);
vp = pairmake("SoH-MS-Machine-SP-release", NULL, T_OP_EQ);
+ if (!vp) return 0;
+
vp->vp_integer = soh_pull_be_16(p); p+=2;
pairadd(&sohvp, vp);
vp = pairmake("SoH-MS-Machine-Processor", NULL, T_OP_EQ);
+ if (!vp) return 0;
+
vp->vp_integer = soh_pull_be_16(p); p+=2;
pairadd(&sohvp, vp);
-
break;
case 2:
p += 2;
vp = pairmake("SoH-MS-Machine-Name", NULL, T_OP_EQ);
+ if (!vp) return 0;
+
memcpy(vp->vp_strvalue, p, t);
vp->vp_strvalue[t] = 0;
* to echo back to the client in a final SoHR
*/
vp = pairmake("SoH-MS-Correlation-Id", NULL, T_OP_EQ);
+ if (!vp) return 0;
+
memcpy(vp->vp_octets, p, 24);
vp->length = 24;
pairadd(&sohvp, vp);
*/
p += 4;
vp = pairmake("SoH-MS-Machine-Role", NULL, T_OP_EQ);
+ if (!vp) return 0;
+
vp->vp_integer = *p;
pairadd(&sohvp, vp);
p++;
RDEBUG2("SoH Health-Class-Status microsoft DWORD=%08x", hcstatus);
vp = pairmake("SoH-MS-Windows-Health-Status", NULL, T_OP_EQ);
+ if (!vp) return 0;
+
switch (curr_hc) {
case 4:
/* security updates */
}
} else {
vp = pairmake("SoH-MS-Health-Other", NULL, T_OP_EQ);
+ if (!vp) return 0;
+
/* FIXME: what to do with the payload? */
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%08x/%i ?", curr_shid, curr_shid_c);
}