Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sat, 7 Nov 2015 14:29:43 +0100
From: Szabolcs Nagy <nsz@...t70.net>
To: musl@...ts.openwall.com
Subject: Re: [PATCH] don't wrap __syscall invocation in parenthesis

* Petr Hosek <phosek@...omium.org> [2015-11-06 23:51:21 +0000]:
> This is a cleanup change, when __syscall is defined as a macro, its
> expansion breaks in cases where the invocation is wrapped in parenthesis.
> There are 2 such cases in the codebase and this patch fixes those.

well that's the point of the parenthesis to stop macro expansion..

i think x32 breaks otherwise (because of the argument cast hacks)

> From 21864f367028899b541290258711750313e226f5 Mon Sep 17 00:00:00 2001
> From: Petr Hosek <phosek@...omium.org>
> Date: Thu, 5 Nov 2015 07:57:23 -0800
> Subject: [PATCH] don't wrap __syscall invocation in parenthesis
> 
> when __syscall is defined as a macro, its expansion breaks in
> cases where the invocation is wrapped in parenthesis.
> ---
>  src/fcntl/posix_fadvise.c | 2 +-
>  src/thread/__syscall_cp.c | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/fcntl/posix_fadvise.c b/src/fcntl/posix_fadvise.c
> index d5360e0..fc1562e 100644
> --- a/src/fcntl/posix_fadvise.c
> +++ b/src/fcntl/posix_fadvise.c
> @@ -4,7 +4,7 @@
>  
>  int posix_fadvise(int fd, off_t base, off_t len, int advice)
>  {
> -	return -(__syscall)(SYS_fadvise, fd, __SYSCALL_LL_O(base),
> +	return -__syscall(SYS_fadvise, fd, __SYSCALL_LL_O(base),
>  		__SYSCALL_LL_E(len), advice);
>  }
>  
> diff --git a/src/thread/__syscall_cp.c b/src/thread/__syscall_cp.c
> index faf57b1..09878c6 100644
> --- a/src/thread/__syscall_cp.c
> +++ b/src/thread/__syscall_cp.c
> @@ -10,7 +10,7 @@ static long sccp(syscall_arg_t nr,
>                   syscall_arg_t u, syscall_arg_t v, syscall_arg_t w,
>                   syscall_arg_t x, syscall_arg_t y, syscall_arg_t z)
>  {
> -	return (__syscall)(nr, u, v, w, x, y, z);
> +	return __syscall(nr, u, v, w, x, y, z);
>  }
>  
>  weak_alias(sccp, __syscall_cp_c);
> -- 
> 2.6.0.rc2.230.g3dd15c0
> 

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ