[syslinux:master] setup_data: check to make sure kernel version >= 0x0209

syslinux-bot for H. Peter Anvin hpa at linux.intel.com
Fri Jun 29 15:45:03 PDT 2012


Commit-ID:  91937bd1012d913569db7f5a6b6d211e08b9e2f4
Gitweb:     http://www.syslinux.org/commit/91937bd1012d913569db7f5a6b6d211e08b9e2f4
Author:     H. Peter Anvin <hpa at linux.intel.com>
AuthorDate: Fri, 29 Jun 2012 15:43:20 -0700
Committer:  H. Peter Anvin <hpa at linux.intel.com>
CommitDate: Fri, 29 Jun 2012 15:43:20 -0700

setup_data: check to make sure kernel version >= 0x0209

Versions before 2.09 had no setup_data support.

Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>

---
 com32/lib/syslinux/load_linux.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/com32/lib/syslinux/load_linux.c b/com32/lib/syslinux/load_linux.c
index 86fc07f..622c2ab 100644
--- a/com32/lib/syslinux/load_linux.c
+++ b/com32/lib/syslinux/load_linux.c
@@ -38,6 +38,7 @@
 #include <inttypes.h>
 #include <string.h>
 #include <minmax.h>
+#include <errno.h>
 #include <suffix_number.h>
 #include <syslinux/align.h>
 #include <syslinux/linux.h>
@@ -461,6 +462,12 @@ int syslinux_boot_linux(void *kernel_buf, size_t kernel_size,
 	    addr_t best_addr = 0;
 	    size_t size = sdp->hdr.len + sizeof(sdp->hdr);
 
+	    if (hdr.version < 0x0209) {
+		/* Setup data not supported */
+		errno = ENXIO;	/* Kind of arbitrary... */
+		goto bail;
+	    }
+
 	    if (!sdp->data || !sdp->hdr.len)
 		continue;
 


More information about the Syslinux-commits mailing list