aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@linux.intel.com>2012-06-29 15:46:27 -0700
committerH. Peter Anvin <hpa@linux.intel.com>2012-06-29 15:46:27 -0700
commitfda6eb8480b797475f228325233c4f4931904bef (patch)
tree76a307b005fd7a1376d817fbb086a65519fa30b3
parent91937bd1012d913569db7f5a6b6d211e08b9e2f4 (diff)
downloadsyslinux-fda6eb8480b797475f228325233c4f4931904bef.tar.gz
syslinux-fda6eb8480b797475f228325233c4f4931904bef.tar.xz
syslinux-fda6eb8480b797475f228325233c4f4931904bef.zip
setup_data: if nothing to load and version < 2.09, no harm no foul
If the setup_data is empty, it is okay if the version is < 2.09. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
-rw-r--r--com32/lib/syslinux/load_linux.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/com32/lib/syslinux/load_linux.c b/com32/lib/syslinux/load_linux.c
index 622c2ab2..856141f8 100644
--- a/com32/lib/syslinux/load_linux.c
+++ b/com32/lib/syslinux/load_linux.c
@@ -462,15 +462,15 @@ 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 (!sdp->data || !sdp->hdr.len)
+ continue;
+
if (hdr.version < 0x0209) {
/* Setup data not supported */
errno = ENXIO; /* Kind of arbitrary... */
goto bail;
}
- if (!sdp->data || !sdp->hdr.len)
- continue;
-
for (ml = amap; ml->type != SMT_END; ml = ml->next) {
addr_t adj_start = (ml->start + align_mask) & ~align_mask;
addr_t adj_end = ml->next->start & ~align_mask;