[PATCH v2 1/4] syscalls: Restore address limit after a syscall
Borislav Petkov
bp at alien8.de
Thu Mar 9 00:42:08 PST 2017
On Wed, Mar 08, 2017 at 05:24:53PM -0800, Thomas Garnier wrote:
> @@ -191,6 +191,22 @@ extern struct trace_event_functions exit_syscall_print_funcs;
> SYSCALL_METADATA(sname, x, __VA_ARGS__) \
> __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
>
> +asmlinkage void verify_pre_usermode_state(void);
> +
> +#ifndef CONFIG_ARCH_NO_SYSCALL_VERIFY_PRE_USERMODE_STATE
> +static inline bool has_user_ds(void) {
> + bool ret = segment_eq(get_fs(), USER_DS);
> + // Prevent re-ordering the call
This is not the kernel comments style. Use /* */ instead.
> + barrier();
> + return ret;
> +}
> +#else
> +static inline bool has_user_ds(void) {
> + return false;
> +}
> +#endif
... and then you could slim down the ifdeffery a bit:
static inline bool has_user_ds(void) {
bool ret = false;
#ifndef CONFIG_ARCH_NO_SYSCALL_VERIFY_PRE_USERMODE_STATE
ret = segment_eq(get_fs(), USER_DS);
/* Prevent re-ordering the call. */
barrier();
#endif
return ret;
}
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.
More information about the linux-arm-kernel
mailing list