diff options
author | Kai Kang <kai.kang@windriver.com> | 2014-06-20 14:06:30 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-06-24 19:54:12 +0100 |
commit | 3c7b5ec1cae6186a64e0be2c05b64b05add08c97 (patch) | |
tree | c202d0e5b91becc2e8c79467be98420e51a4340e | |
parent | cc480eafe576aa6c56a58f6ef71bf8be705aa8b1 (diff) | |
download | poky-3c7b5ec1cae6186a64e0be2c05b64b05add08c97.tar.gz |
syslinux: fix isohybird overflows on 32 bit system
When call isohybrid with option '-u', it overflows on a 32 bits host. It
seeks to 512 bytes before the end of the image to install gpt header. If
the size of image is larger than LONG_MAX, it overflows fseek() and
cause error:
isohybrid: wrlinux-image-x86-64-20140505110100.iso: seek error - 8: Invalid argument
Replace fseek with fseeko to fix this issue.
(From OE-Core rev: 41bd9dbf6f3e0add6a9e2cb20cfcbff44d785ea4)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/recipes-devtools/syslinux/files/isohybrid-fix-overflow-on-32-bit-system.patch | 40 | ||||
-rw-r--r-- | meta/recipes-devtools/syslinux/syslinux_6.01.bb | 4 |
2 files changed, 43 insertions, 1 deletions
diff --git a/meta/recipes-devtools/syslinux/files/isohybrid-fix-overflow-on-32-bit-system.patch b/meta/recipes-devtools/syslinux/files/isohybrid-fix-overflow-on-32-bit-system.patch new file mode 100644 index 0000000000..09a6945ba9 --- /dev/null +++ b/meta/recipes-devtools/syslinux/files/isohybrid-fix-overflow-on-32-bit-system.patch | |||
@@ -0,0 +1,40 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | Signed-off-by: Kai Kang <kai.kang@windriver.com> | ||
4 | |||
5 | From bc360f8dbdf27bff07bb5db8d0ea9a7b10d8e3d1 Mon Sep 17 00:00:00 2001 | ||
6 | From: Kai Kang <kai.kang@windriver.com> | ||
7 | Date: Fri, 20 Jun 2014 11:32:11 +0800 | ||
8 | Subject: [PATCH 1/2] isohybrid: fix overflow on 32 bit system | ||
9 | |||
10 | When call isohybrid with option '-u', it overflows on a 32 bits host. It | ||
11 | seeks to 512 bytes before the end of the image to install gpt header. If | ||
12 | the size of image is larger than LONG_MAX, it overflows fseek() and | ||
13 | cause error: | ||
14 | |||
15 | isohybrid: image-x86-64-20140505110100.iso: seek error - 8: Invalid argument | ||
16 | |||
17 | Replace fseek with fseeko to fix this issue. | ||
18 | |||
19 | Signed-off-by: Kai Kang <kai.kang@windriver.com> | ||
20 | Signed-off-by: H. Peter Anvin <hpa@zytor.com> | ||
21 | --- | ||
22 | utils/isohybrid.c | 2 +- | ||
23 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
24 | |||
25 | diff --git a/utils/isohybrid.c b/utils/isohybrid.c | ||
26 | index 410bb60..23fc6c0 100644 | ||
27 | --- a/utils/isohybrid.c | ||
28 | +++ b/utils/isohybrid.c | ||
29 | @@ -1126,7 +1126,7 @@ main(int argc, char *argv[]) | ||
30 | * end of the image | ||
31 | */ | ||
32 | |||
33 | - if (fseek(fp, (isostat.st_size + padding) - orig_gpt_size - 512, | ||
34 | + if (fseeko(fp, (isostat.st_size + padding) - orig_gpt_size - 512, | ||
35 | SEEK_SET)) | ||
36 | err(1, "%s: seek error - 8", argv[0]); | ||
37 | |||
38 | -- | ||
39 | 1.9.1 | ||
40 | |||
diff --git a/meta/recipes-devtools/syslinux/syslinux_6.01.bb b/meta/recipes-devtools/syslinux/syslinux_6.01.bb index 89204b03ae..e8a1fd4ffe 100644 --- a/meta/recipes-devtools/syslinux/syslinux_6.01.bb +++ b/meta/recipes-devtools/syslinux/syslinux_6.01.bb | |||
@@ -13,7 +13,9 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/boot/syslinux/6.xx/syslinux-${PV}.tar | |||
13 | file://0002-memscan-build-a-linked-list-of-memory-scanners.patch \ | 13 | file://0002-memscan-build-a-linked-list-of-memory-scanners.patch \ |
14 | file://0003-PXELINUX-Add-bios-memscan-function.patch \ | 14 | file://0003-PXELINUX-Add-bios-memscan-function.patch \ |
15 | file://0004-pxe-use-bios_fbm-and-real_base_mem-to-calculate-free.patch \ | 15 | file://0004-pxe-use-bios_fbm-and-real_base_mem-to-calculate-free.patch \ |
16 | file://syslinux-fix-parallel-building-issue.patch" | 16 | file://syslinux-fix-parallel-building-issue.patch \ |
17 | file://isohybrid-fix-overflow-on-32-bit-system.patch \ | ||
18 | " | ||
17 | 19 | ||
18 | SRC_URI[md5sum] = "6945ee89e29119d459baed4937bbc534" | 20 | SRC_URI[md5sum] = "6945ee89e29119d459baed4937bbc534" |
19 | SRC_URI[sha256sum] = "83a04cf81e6a46b80ee5a321926eea095af3498b04317e3674b46c125c7a5b43" | 21 | SRC_URI[sha256sum] = "83a04cf81e6a46b80ee5a321926eea095af3498b04317e3674b46c125c7a5b43" |