[syslinux:master] hdt: Fixing buffer corruption in PXE menu

syslinux-bot for Erwan Velu erwanaliasr1 at gmail.com
Mon Apr 25 15:29:08 PDT 2011


Commit-ID:  ba305c222256dcec6d94b3fb803e15d6ef83cc3e
Gitweb:     http://syslinux.zytor.com/commit/ba305c222256dcec6d94b3fb803e15d6ef83cc3e
Author:     Erwan Velu <erwanaliasr1 at gmail.com>
AuthorDate: Fri, 15 Apr 2011 21:26:52 +0200
Committer:  Erwan Velu <erwanaliasr1 at gmail.com>
CommitDate: Fri, 15 Apr 2011 21:26:52 +0200

hdt: Fixing buffer corruption in PXE menu

Jim Cromie reported that PXE menu behave like :

gPXE Detected: ]No

This commit avoid this buffer corruption.


---
 com32/hdt/hdt-menu-pxe.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/com32/hdt/hdt-menu-pxe.c b/com32/hdt/hdt-menu-pxe.c
index 426bfe0..12d8b11 100644
--- a/com32/hdt/hdt-menu-pxe.c
+++ b/com32/hdt/hdt-menu-pxe.c
@@ -34,7 +34,7 @@ void compute_PXE(struct s_my_menu *menu, struct s_hardware *hardware)
 {
     char buffer[SUBMENULEN + 1];
     char infobar[STATLEN + 1];
-    char gpxe[4];
+    char gpxe[4]={0};
 
     if (hardware->is_pxe_valid == false)
 	return;
@@ -113,8 +113,8 @@ void compute_PXE(struct s_my_menu *menu, struct s_hardware *hardware)
     add_item(buffer, infobar, OPT_INACTIVE, NULL, 0);
     menu->items_count++;
 
-    if (is_gpxe()) strcat(gpxe,"Yes");
-    else strcat (gpxe,"No");
+    if (is_gpxe()) snprintf(gpxe,sizeof(gpxe),"%s","Yes");
+    else snprintf (gpxe, sizeof(gpxe), "%s", "No");
 
     snprintf(buffer, sizeof buffer, "gPXE Detected: %s", gpxe);
     snprintf(infobar, sizeof infobar, "gPXE Detected: %s", gpxe);



More information about the Syslinux-commits mailing list