[coreboot-gerrit] Change in coreboot[master]: util/inteltool: Remove duplicated error message, switch to snprintf

Nico Huber (Code Review) gerrit at coreboot.org
Tue Aug 22 12:10:35 CEST 2017


Nico Huber has submitted this change and it was merged. ( https://review.coreboot.org/21025 )

Change subject: util/inteltool: Remove duplicated error message, switch to snprintf
......................................................................

util/inteltool: Remove duplicated error message, switch to snprintf

Passing a string containing output from strerror() to perror() causes
double error message display. It is also causing segfaults when the
error message is longer than temp_string capacity.

To fix the problems, sterror() call has been removed so the error
message is printed only once. This could be enough to avoid segfaults,
but it is a good practice to limit output size with snprintf().

Change-Id: I5ccc37e404f278cafae0a451c5acaa27d7907cce
Signed-off-by: Maciej Suminski <maciej.suminski at cern.ch>
Reviewed-on: https://review.coreboot.org/21025
Tested-by: build bot (Jenkins) <no-reply at coreboot.org>
Reviewed-by: Nico Huber <nico.h at gmx.de>
---
M util/inteltool/cpu.c
1 file changed, 5 insertions(+), 7 deletions(-)

Approvals:
  build bot (Jenkins): Verified
  Nico Huber: Looks good to me, approved



diff --git a/util/inteltool/cpu.c b/util/inteltool/cpu.c
index 7b2e503..360b86b 100644
--- a/util/inteltool/cpu.c
+++ b/util/inteltool/cpu.c
@@ -117,14 +117,13 @@
 	*fd = open(dev, mode);
 
 	if (*fd < 0) {
-		sprintf(temp_string,
-			"open(\"%s\"): %s\n", dev, strerror(errno));
+		snprintf(temp_string, sizeof(temp_string), "open(\"%s\")", dev);
 		perror(temp_string);
 		return -1;
 	}
 
 	if (lseek(*fd, msr, SEEK_SET) == (off_t)-1) {
-		sprintf(temp_string, "lseek(%lu): %s\n", msr, strerror(errno));
+		snprintf(temp_string, sizeof(temp_string), "lseek(%lu)", msr);
 		perror(temp_string);
 		close(*fd);
 		return -1;
@@ -141,7 +140,8 @@
 	char temp_string[50];
 
 	if (open_and_seek(cpu, addr, O_RDONLY, &fd) < 0) {
-		sprintf(temp_string, "Could not read MSR for CPU#%d", cpu);
+		snprintf(temp_string, sizeof(temp_string),
+			"Could not read MSR for CPU#%d", cpu);
 		perror(temp_string);
 	}
 
@@ -194,13 +194,11 @@
 #ifndef __DARWIN__
 	int ncpus = get_number_of_cpus();
 	int i = 0;
-	char temp_string[50];
 
 	printf("\n============= Dumping INTEL SGX status =============");
 
 	if (ncpus < 1) {
-		sprintf(temp_string, "Failed to get number of CPUs\n");
-		perror(temp_string);
+		perror("Failed to get number of CPUs");
 		error = -1;
 	} else {
 		printf("\nNumber of CPUs = %d\n", ncpus);

-- 
To view, visit https://review.coreboot.org/21025
To unsubscribe, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I5ccc37e404f278cafae0a451c5acaa27d7907cce
Gerrit-Change-Number: 21025
Gerrit-PatchSet: 6
Gerrit-Owner: Maciej Suminski <maciej.suminski at cern.ch>
Gerrit-Reviewer: Maciej Suminski <maciej.suminski at cern.ch>
Gerrit-Reviewer: Nico Huber <nico.h at gmx.de>
Gerrit-Reviewer: Paul Menzel <paulepanter at users.sourceforge.net>
Gerrit-Reviewer: Pratikkumar V Prajapati <pratikkumar.v.prajapati at intel.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply at coreboot.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20170822/c9494446/attachment.html>


More information about the coreboot-gerrit mailing list