diff options
author | Paul Vaduva <Paul.Vaduva@enea.com> | 2016-04-27 13:31:48 +0200 |
---|---|---|
committer | Paul Vaduva <Paul.Vaduva@enea.com> | 2016-04-27 14:39:18 +0200 |
commit | edcda3e04aedba81071ca9277c7fca29995a9a3c (patch) | |
tree | bccfb2ead21164ef9f13962ceca92bb13e2edeaf | |
parent | ac9ebdd9486e0c4f724bea0225b0804c5b35dd25 (diff) | |
download | meta-enea-bsp-ppc-edcda3e04aedba81071ca9277c7fca29995a9a3c.tar.gz |
kernel ipc: fix compat msgrcv with negative msgtyp
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.bbappend | 2 |
2 files changed, 29 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.bbappend b/recipes-kernel/linux/linux-qoriq_3.12.bbappend index f9311e9..bd21278 100644 --- a/recipes-kernel/linux/linux-qoriq_3.12.bbappend +++ b/recipes-kernel/linux/linux-qoriq_3.12.bbappend | |||
@@ -1 +1,3 @@ | |||
1 | require recipes-kernel/linux/linux-qoriq-common.inc | 1 | require recipes-kernel/linux/linux-qoriq-common.inc |
2 | SRC_URI += "file://Trusty-SRU-ipc-fix-compat-msgrcv-with-negative-msgtyp.patch \ | ||
3 | " | ||