diff options
author | Christoph Hellwig <hch@lst.de> | 2019-06-13 03:08:47 -0400 |
---|---|---|
committer | Greg Ungerer <gerg@kernel.org> | 2019-06-23 19:16:46 -0400 |
commit | 9ee24b2a38358acbe004640776520a093ac34642 (patch) | |
tree | d0b7b8e313fc6ce1d26fcd5554c9f5ce607fa577 | |
parent | 4b972a01a7da614b4796475f933094751a295a2f (diff) |
binfmt_flat: remove flat_reloc_valid
This helper is the same for all architectures, open code it in the only
caller.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Vladimir Murzin <vladimir.murzin@arm.com>
Reviewed-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
-rw-r--r-- | arch/arm/include/asm/flat.h | 1 | ||||
-rw-r--r-- | arch/c6x/include/asm/flat.h | 1 | ||||
-rw-r--r-- | arch/h8300/include/asm/flat.h | 1 | ||||
-rw-r--r-- | arch/m68k/include/asm/flat.h | 1 | ||||
-rw-r--r-- | arch/microblaze/include/asm/flat.h | 1 | ||||
-rw-r--r-- | arch/sh/include/asm/flat.h | 1 | ||||
-rw-r--r-- | arch/xtensa/include/asm/flat.h | 1 | ||||
-rw-r--r-- | fs/binfmt_flat.c | 2 |
8 files changed, 1 insertions, 8 deletions
diff --git a/arch/arm/include/asm/flat.h b/arch/arm/include/asm/flat.h index f0c75ddeea23..10cce9ecf151 100644 --- a/arch/arm/include/asm/flat.h +++ b/arch/arm/include/asm/flat.h | |||
@@ -10,7 +10,6 @@ | |||
10 | 10 | ||
11 | #define flat_argvp_envp_on_stack() 1 | 11 | #define flat_argvp_envp_on_stack() 1 |
12 | #define flat_old_ram_flag(flags) (flags) | 12 | #define flat_old_ram_flag(flags) (flags) |
13 | #define flat_reloc_valid(reloc, size) ((reloc) <= (size)) | ||
14 | 13 | ||
15 | static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, | 14 | static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, |
16 | u32 *addr, u32 *persistent) | 15 | u32 *addr, u32 *persistent) |
diff --git a/arch/c6x/include/asm/flat.h b/arch/c6x/include/asm/flat.h index 76fd0bb962a3..ecc6aea6606c 100644 --- a/arch/c6x/include/asm/flat.h +++ b/arch/c6x/include/asm/flat.h | |||
@@ -6,7 +6,6 @@ | |||
6 | 6 | ||
7 | #define flat_argvp_envp_on_stack() 0 | 7 | #define flat_argvp_envp_on_stack() 0 |
8 | #define flat_old_ram_flag(flags) (flags) | 8 | #define flat_old_ram_flag(flags) (flags) |
9 | #define flat_reloc_valid(reloc, size) ((reloc) <= (size)) | ||
10 | static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, | 9 | static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, |
11 | u32 *addr, u32 *persistent) | 10 | u32 *addr, u32 *persistent) |
12 | { | 11 | { |
diff --git a/arch/h8300/include/asm/flat.h b/arch/h8300/include/asm/flat.h index f4cdfcbdd2ba..dcc7775115dd 100644 --- a/arch/h8300/include/asm/flat.h +++ b/arch/h8300/include/asm/flat.h | |||
@@ -10,7 +10,6 @@ | |||
10 | 10 | ||
11 | #define flat_argvp_envp_on_stack() 1 | 11 | #define flat_argvp_envp_on_stack() 1 |
12 | #define flat_old_ram_flag(flags) 1 | 12 | #define flat_old_ram_flag(flags) 1 |
13 | #define flat_reloc_valid(reloc, size) ((reloc) <= (size)) | ||
14 | #define flat_set_persistent(relval, p) 0 | 13 | #define flat_set_persistent(relval, p) 0 |
15 | 14 | ||
16 | /* | 15 | /* |
diff --git a/arch/m68k/include/asm/flat.h b/arch/m68k/include/asm/flat.h index 4f1d1e373420..a631caf5e18f 100644 --- a/arch/m68k/include/asm/flat.h +++ b/arch/m68k/include/asm/flat.h | |||
@@ -10,7 +10,6 @@ | |||
10 | 10 | ||
11 | #define flat_argvp_envp_on_stack() 1 | 11 | #define flat_argvp_envp_on_stack() 1 |
12 | #define flat_old_ram_flag(flags) (flags) | 12 | #define flat_old_ram_flag(flags) (flags) |
13 | #define flat_reloc_valid(reloc, size) ((reloc) <= (size)) | ||
14 | static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, | 13 | static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, |
15 | u32 *addr, u32 *persistent) | 14 | u32 *addr, u32 *persistent) |
16 | { | 15 | { |
diff --git a/arch/microblaze/include/asm/flat.h b/arch/microblaze/include/asm/flat.h index 3d2747d4c967..34be5ed011be 100644 --- a/arch/microblaze/include/asm/flat.h +++ b/arch/microblaze/include/asm/flat.h | |||
@@ -15,7 +15,6 @@ | |||
15 | 15 | ||
16 | #define flat_argvp_envp_on_stack() 0 | 16 | #define flat_argvp_envp_on_stack() 0 |
17 | #define flat_old_ram_flag(flags) (flags) | 17 | #define flat_old_ram_flag(flags) (flags) |
18 | #define flat_reloc_valid(reloc, size) ((reloc) <= (size)) | ||
19 | #define flat_set_persistent(relval, p) 0 | 18 | #define flat_set_persistent(relval, p) 0 |
20 | 19 | ||
21 | /* | 20 | /* |
diff --git a/arch/sh/include/asm/flat.h b/arch/sh/include/asm/flat.h index 843d458b8329..8f2929b32f2e 100644 --- a/arch/sh/include/asm/flat.h +++ b/arch/sh/include/asm/flat.h | |||
@@ -13,7 +13,6 @@ | |||
13 | 13 | ||
14 | #define flat_argvp_envp_on_stack() 0 | 14 | #define flat_argvp_envp_on_stack() 0 |
15 | #define flat_old_ram_flag(flags) (flags) | 15 | #define flat_old_ram_flag(flags) (flags) |
16 | #define flat_reloc_valid(reloc, size) ((reloc) <= (size)) | ||
17 | static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, | 16 | static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, |
18 | u32 *addr, u32 *persistent) | 17 | u32 *addr, u32 *persistent) |
19 | { | 18 | { |
diff --git a/arch/xtensa/include/asm/flat.h b/arch/xtensa/include/asm/flat.h index b8532d7877b3..6ee5a35eb0ec 100644 --- a/arch/xtensa/include/asm/flat.h +++ b/arch/xtensa/include/asm/flat.h | |||
@@ -6,7 +6,6 @@ | |||
6 | 6 | ||
7 | #define flat_argvp_envp_on_stack() 0 | 7 | #define flat_argvp_envp_on_stack() 0 |
8 | #define flat_old_ram_flag(flags) (flags) | 8 | #define flat_old_ram_flag(flags) (flags) |
9 | #define flat_reloc_valid(reloc, size) ((reloc) <= (size)) | ||
10 | static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, | 9 | static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, |
11 | u32 *addr, u32 *persistent) | 10 | u32 *addr, u32 *persistent) |
12 | { | 11 | { |
diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index 82a48e830018..afddea583999 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c | |||
@@ -345,7 +345,7 @@ calc_reloc(unsigned long r, struct lib_info *p, int curid, int internalp) | |||
345 | start_code = p->lib_list[id].start_code; | 345 | start_code = p->lib_list[id].start_code; |
346 | text_len = p->lib_list[id].text_len; | 346 | text_len = p->lib_list[id].text_len; |
347 | 347 | ||
348 | if (!flat_reloc_valid(r, start_brk - start_data + text_len)) { | 348 | if (r > start_brk - start_data + text_len) { |
349 | pr_err("reloc outside program 0x%lx (0 - 0x%lx/0x%lx)", | 349 | pr_err("reloc outside program 0x%lx (0 - 0x%lx/0x%lx)", |
350 | r, start_brk-start_data+text_len, text_len); | 350 | r, start_brk-start_data+text_len, text_len); |
351 | goto failed; | 351 | goto failed; |