Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP7:GA
tpm-tools
0001-tpm_version-avoid-outputting-NULL-bytes-fr...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-tpm_version-avoid-outputting-NULL-bytes-from-tpmVend.patch of Package tpm-tools
From c927f67f36a4719bd15b8a535efb6980f1e87a6b Mon Sep 17 00:00:00 2001 From: Matthias Gerstner <matthias.gerstner@suse.de> Date: Fri, 30 Nov 2018 12:48:37 +0100 Subject: [PATCH] tpm_version: avoid outputting NULL bytes from tpmVendorID When the vendor ID contains null bytes then '^@' characters appear in the tpm_version output. This can confuse users and it also causes e.g. 'grep' to treat the input as binary. Example: TPM Vendor ID: WEC\000 This change copies the vendor ID bytes over into a local string object. This makes the code more independent of the vendor ID dimension and also avoids NULL bytes being printed. --- src/tpm_mgmt/tpm_version.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) Index: tpm-tools-1.3.9.1/src/tpm_mgmt/tpm_version.c =================================================================== --- tpm-tools-1.3.9.1.orig/src/tpm_mgmt/tpm_version.c +++ tpm-tools-1.3.9.1/src/tpm_mgmt/tpm_version.c @@ -133,6 +133,7 @@ int cmdVersion(const char *a_szCmd) UINT64 offset; TSS_RESULT uiResult; TPM_CAP_VERSION_INFO versionInfo; + char vendor_id[sizeof(versionInfo.tpmVendorID)+1]; char *errbuf = NULL; // Buffer containing what was sent to stderr during getCapability. /* Disable logging to of "Bad Mode" during this call. @@ -169,15 +170,17 @@ int cmdVersion(const char *a_szCmd) goto out_close; } + // copy over the individual characters into a regular string. + // This avoids that null bytes are written to stdout. + snprintf ( vendor_id, sizeof(vendor_id), "%s", (const char*)versionInfo.tpmVendorID ); + logMsg(_(" TPM 1.2 Version Info:\n")); logMsg(_(" Chip Version: %hhu.%hhu.%hhu.%hhu\n"), versionInfo.version.major, versionInfo.version.minor, versionInfo.version.revMajor, versionInfo.version.revMinor); logMsg(_(" Spec Level: %hu\n"), versionInfo.specLevel); logMsg(_(" Errata Revision: %hhu\n"), versionInfo.errataRev); - logMsg(_(" TPM Vendor ID: %c%c%c%c\n"), - versionInfo.tpmVendorID[0], versionInfo.tpmVendorID[1], - versionInfo.tpmVendorID[2], versionInfo.tpmVendorID[3]); + logMsg(_(" TPM Vendor ID: %s\n"), vendor_id); if (versionInfo.vendorSpecificSize) { logMsg(_(" Vendor Specific data: "));
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor