<p>Nico Huber <strong>merged</strong> this change.</p><p><a href="https://review.coreboot.org/21025">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  build bot (Jenkins): Verified
  Nico Huber: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">util/inteltool: Remove duplicated error message, switch to snprintf<br><br>Passing a string containing output from strerror() to perror() causes<br>double error message display. It is also causing segfaults when the<br>error message is longer than temp_string capacity.<br><br>To fix the problems, sterror() call has been removed so the error<br>message is printed only once. This could be enough to avoid segfaults,<br>but it is a good practice to limit output size with snprintf().<br><br>Change-Id: I5ccc37e404f278cafae0a451c5acaa27d7907cce<br>Signed-off-by: Maciej Suminski <maciej.suminski@cern.ch><br>Reviewed-on: https://review.coreboot.org/21025<br>Tested-by: build bot (Jenkins) <no-reply@coreboot.org><br>Reviewed-by: Nico Huber <nico.h@gmx.de><br>---<br>M util/inteltool/cpu.c<br>1 file changed, 5 insertions(+), 7 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/util/inteltool/cpu.c b/util/inteltool/cpu.c<br>index 7b2e503..360b86b 100644<br>--- a/util/inteltool/cpu.c<br>+++ b/util/inteltool/cpu.c<br>@@ -117,14 +117,13 @@<br>  *fd = open(dev, mode);<br> <br>     if (*fd < 0) {<br>-            sprintf(temp_string,<br>-                 "open(\"%s\"): %s\n", dev, strerror(errno));<br>+             snprintf(temp_string, sizeof(temp_string), "open(\"%s\")", dev);<br>          perror(temp_string);<br>          return -1;<br>    }<br> <br>  if (lseek(*fd, msr, SEEK_SET) == (off_t)-1) {<br>-                sprintf(temp_string, "lseek(%lu): %s\n", msr, strerror(errno));<br>+            snprintf(temp_string, sizeof(temp_string), "lseek(%lu)", msr);<br>              perror(temp_string);<br>          close(*fd);<br>           return -1;<br>@@ -141,7 +140,8 @@<br>       char temp_string[50];<br> <br>      if (open_and_seek(cpu, addr, O_RDONLY, &fd) < 0) {<br>-            sprintf(temp_string, "Could not read MSR for CPU#%d", cpu);<br>+                snprintf(temp_string, sizeof(temp_string),<br>+                   "Could not read MSR for CPU#%d", cpu);<br>              perror(temp_string);<br>  }<br> <br>@@ -194,13 +194,11 @@<br> #ifndef __DARWIN__<br>      int ncpus = get_number_of_cpus();<br>     int i = 0;<br>-   char temp_string[50];<br> <br>      printf("\n============= Dumping INTEL SGX status =============");<br> <br>        if (ncpus < 1) {<br>-          sprintf(temp_string, "Failed to get number of CPUs\n");<br>-            perror(temp_string);<br>+         perror("Failed to get number of CPUs");<br>             error = -1;<br>   } else {<br>              printf("\nNumber of CPUs = %d\n", ncpus);<br></pre><p>To view, visit <a href="https://review.coreboot.org/21025">change 21025</a>. To unsubscribe, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/21025"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I5ccc37e404f278cafae0a451c5acaa27d7907cce </div>
<div style="display:none"> Gerrit-Change-Number: 21025 </div>
<div style="display:none"> Gerrit-PatchSet: 6 </div>
<div style="display:none"> Gerrit-Owner: Maciej Suminski <maciej.suminski@cern.ch> </div>
<div style="display:none"> Gerrit-Reviewer: Maciej Suminski <maciej.suminski@cern.ch> </div>
<div style="display:none"> Gerrit-Reviewer: Nico Huber <nico.h@gmx.de> </div>
<div style="display:none"> Gerrit-Reviewer: Paul Menzel <paulepanter@users.sourceforge.net> </div>
<div style="display:none"> Gerrit-Reviewer: Pratikkumar V Prajapati <pratikkumar.v.prajapati@intel.com> </div>
<div style="display:none"> Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org> </div>