diff options
author | Paul Vaduva <Paul.Vaduva@enea.com> | 2016-04-27 15:27:21 +0200 |
---|---|---|
committer | Zhenhua Luo <zhenhua.luo@nxp.com> | 2016-05-03 09:11:35 +0800 |
commit | ebe696fc7e7b93d0056372bf2e24bf09746d0f4a (patch) | |
tree | a7841996642a9f5d23e9cdcefb7fc183dd8b4d28 | |
parent | cd0ba65d48ec067775297f859084913dfe10a180 (diff) | |
download | meta-fsl-ppc-krogoth-next.tar.gz |
ipc: fix compat msgrcv with negative msgtypkrogoth-nextkrogoth
BugLink: http://bugs.launchpad.net/bugs/1393355
Compat function takes msgtyp argument as u32 and passes it down to
do_msgrcv which results in casting to long, thus the sign is lost and we
get a big positive number instead.
Cast the argument to signed type before passing it down.
Signed-off-by: Paul Vaduva <Paul.Vaduva@enea.com>
-rw-r--r-- | recipes-kernel/linux/files/Trusty-SRU-ipc-fix-compat-msgrcv-with-negative-msgtyp.patch | 27 | ||||
-rw-r--r-- | recipes-kernel/linux/linux-qoriq_3.12.bb | 1 |
2 files changed, 28 insertions, 0 deletions
diff --git a/recipes-kernel/linux/files/Trusty-SRU-ipc-fix-compat-msgrcv-with-negative-msgtyp.patch b/recipes-kernel/linux/files/Trusty-SRU-ipc-fix-compat-msgrcv-with-negative-msgtyp.patch new file mode 100644 index 0000000..b90a114 --- /dev/null +++ b/recipes-kernel/linux/files/Trusty-SRU-ipc-fix-compat-msgrcv-with-negative-msgtyp.patch | |||
@@ -0,0 +1,27 @@ | |||
1 | BugLink: http://bugs.launchpad.net/bugs/1393355 | ||
2 | |||
3 | Compat function takes msgtyp argument as u32 and passes it down to | ||
4 | do_msgrcv which results in casting to long, thus the sign is lost and we | ||
5 | get a big positive number instead. | ||
6 | |||
7 | Cast the argument to signed type before passing it down. | ||
8 | |||
9 | Signed-off-by: Mateusz Guzik <mguzik@redhat.com> | ||
10 | Reported-by: Gabriellla Schmidt <gsc@bruker.de> | ||
11 | |||
12 | Upstream-Status::Backport | ||
13 | Kernel 3.14 | ||
14 | |||
15 | diff --git a/ipc/compat.c b/ipc/compat.c | ||
16 | index 892f658..d3b3760 100644 | ||
17 | --- a/ipc/compat.c | ||
18 | +++ b/ipc/compat.c | ||
19 | @@ -381,7 +381,7 @@ COMPAT_SYSCALL_DEFINE6(ipc, u32, call, int, first, int, second, | ||
20 | uptr = compat_ptr(ipck.msgp); | ||
21 | fifth = ipck.msgtyp; | ||
22 | } | ||
23 | - return do_msgrcv(first, uptr, second, fifth, third, | ||
24 | + return do_msgrcv(first, uptr, second, (s32)fifth, third, | ||
25 | compat_do_msg_fill); | ||
26 | } | ||
27 | case MSGGET: | ||
diff --git a/recipes-kernel/linux/linux-qoriq_3.12.bb b/recipes-kernel/linux/linux-qoriq_3.12.bb index 110d7ce..889c564 100644 --- a/recipes-kernel/linux/linux-qoriq_3.12.bb +++ b/recipes-kernel/linux/linux-qoriq_3.12.bb | |||
@@ -4,5 +4,6 @@ SRC_URI = "git://git.freescale.com/ppc/sdk/linux.git;branch=sdk-v1.9.x \ | |||
4 | file://modify-defconfig-t1040-nr-cpus.patch \ | 4 | file://modify-defconfig-t1040-nr-cpus.patch \ |
5 | file://net-sctp-CVE-2014-0101.patch \ | 5 | file://net-sctp-CVE-2014-0101.patch \ |
6 | file://0001-powerpc-Align-TOC-to-256-bytes.patch \ | 6 | file://0001-powerpc-Align-TOC-to-256-bytes.patch \ |
7 | file://Trusty-SRU-ipc-fix-compat-msgrcv-with-negative-msgtyp.patch \ | ||
7 | " | 8 | " |
8 | SRCREV = "43cecda943a6c40a833b588801b0929e8bd48813" | 9 | SRCREV = "43cecda943a6c40a833b588801b0929e8bd48813" |