diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2012-06-29 15:46:27 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2012-06-29 15:46:27 -0700 |
commit | fda6eb8480b797475f228325233c4f4931904bef (patch) | |
tree | 76a307b005fd7a1376d817fbb086a65519fa30b3 | |
parent | 91937bd1012d913569db7f5a6b6d211e08b9e2f4 (diff) | |
download | syslinux-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.c | 6 |
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; |