From: Eric Paris <eparis@redhat.com>
To: Richard Weinberger <richard@nod.at>
Cc: linux-kernel@vger.kernel.org, tony.luck@intel.com,
fenghua.yu@intel.com, monstr@monstr.eu, ralf@linux-mips.org,
benh@kernel.crashing.org, paulus@samba.org,
schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com,
linux390@de.ibm.com, lethal@linux-sh.org, davem@davemloft.net,
jdike@addtoit.com, tglx@linutronix.de, mingo@redhat.com,
hpa@zytor.com, x86@kernel.org, viro@zeniv.linux.org.uk,
oleg@redhat.com, akpm@linux-foundation.org,
linux-ia64@vger.kernel.org, microblaze-uclinux@itee.uq.edu.au,
linux-mips@linux-mips.org, linuxppc-dev@lists.ozlabs.org,
linux-s390@vger.kernel.org, linux-sh@vger.kernel.org,
sparclinux@vger.kernel.org,
user-mode-linux-devel@lists.sourceforge.net
Subject: Re: [PATCH] Audit: push audit success and retcode into arch ptrace.h
Date: Thu, 02 Jun 2011 23:06:46 +0000 [thread overview]
Message-ID: <4DE81786.60702@redhat.com> (raw)
In-Reply-To: <201106030032.17398.richard@nod.at>
On 06/02/2011 06:32 PM, Richard Weinberger wrote:
> Am Donnerstag 02 Juni 2011, 23:04:58 schrieb Eric Paris:
>> b/arch/um/sys-i386/shared/sysdep/ptrace.h index d50e62e..ef5c310 100644
>> --- a/arch/um/sys-i386/shared/sysdep/ptrace.h
>> +++ b/arch/um/sys-i386/shared/sysdep/ptrace.h
>> @@ -162,6 +162,7 @@ struct syscall_args {
>> #define UPT_ORIG_SYSCALL(r) UPT_EAX(r)
>> #define UPT_SYSCALL_NR(r) UPT_ORIG_EAX(r)
>> #define UPT_SYSCALL_RET(r) UPT_EAX(r)
>> +#define regs_return_value UPT_SYSCALL_RET
>
> This does not work at all.
> UPT_SYSCALL_RET expects something of type struct uml_pt_regs.
>
> #define regs_return_value REGS_EAX
> Would be correct. (For x86_64 it needs to be REGS_RAX)
>
> But there seems to be another problem.
> Why is pt_regs of type void *?
I was stupid and used #define's instead of static inlines. Sorry. I
wonder how many other arches I got that wrong, i'm sure others....
The code in arch/um/kernel/ptrace.c::syscall_trace() appeared to have a
uml_pt_regs instead of just pt_regs. Which was why audit_syscall_exit()
takes a void * instead of a pt_regs. We pass that right back to
regs_return_value(). I believe the correct code should be:
static inline long regs_return_value(struct uml_pt_regs *r)
{
return UPT_SYSCALL_RET(r);
}
>
> gcc complains:
> In file included from include/linux/fsnotify.h:15:0,
> from include/linux/security.h:26,
> from init/main.c:32:
> include/linux/audit.h: In function ‘audit_syscall_exit’:
> include/linux/audit.h:440:17: warning: dereferencing ‘void *’ pointer
> include/linux/audit.h:440:3: error: invalid use of void expression
> include/linux/audit.h:441:21: warning: dereferencing ‘void *’ pointer
> include/linux/audit.h:441:21: error: void value not ignored as it ought to be
>
> Thanks,
> //richard
WARNING: multiple messages have this Message-ID (diff)
From: Eric Paris <eparis@redhat.com>
To: Richard Weinberger <richard@nod.at>
Cc: linux-kernel@vger.kernel.org, tony.luck@intel.com,
fenghua.yu@intel.com, monstr@monstr.eu, ralf@linux-mips.org,
benh@kernel.crashing.org, paulus@samba.org,
schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com,
linux390@de.ibm.com, lethal@linux-sh.org, davem@davemloft.net,
jdike@addtoit.com, tglx@linutronix.de, mingo@redhat.com,
hpa@zytor.com, x86@kernel.org, viro@zeniv.linux.org.uk,
oleg@redhat.com, akpm@linux-foundation.org,
linux-ia64@vger.kernel.org, microblaze-uclinux@itee.uq.edu.au,
linux-mips@linux-mips.org, linuxppc-dev@lists.ozlabs.org,
linux-s390@vger.kernel.org, linux-sh@vger.kernel.org,
sparclinux@vger.kernel.org,
user-mode-linux-devel@lists.sourceforge.net
Subject: Re: [PATCH] Audit: push audit success and retcode into arch ptrace.h
Date: Thu, 02 Jun 2011 19:06:46 -0400 [thread overview]
Message-ID: <4DE81786.60702@redhat.com> (raw)
In-Reply-To: <201106030032.17398.richard@nod.at>
On 06/02/2011 06:32 PM, Richard Weinberger wrote:
> Am Donnerstag 02 Juni 2011, 23:04:58 schrieb Eric Paris:
>> b/arch/um/sys-i386/shared/sysdep/ptrace.h index d50e62e..ef5c310 100644
>> --- a/arch/um/sys-i386/shared/sysdep/ptrace.h
>> +++ b/arch/um/sys-i386/shared/sysdep/ptrace.h
>> @@ -162,6 +162,7 @@ struct syscall_args {
>> #define UPT_ORIG_SYSCALL(r) UPT_EAX(r)
>> #define UPT_SYSCALL_NR(r) UPT_ORIG_EAX(r)
>> #define UPT_SYSCALL_RET(r) UPT_EAX(r)
>> +#define regs_return_value UPT_SYSCALL_RET
>
> This does not work at all.
> UPT_SYSCALL_RET expects something of type struct uml_pt_regs.
>
> #define regs_return_value REGS_EAX
> Would be correct. (For x86_64 it needs to be REGS_RAX)
>
> But there seems to be another problem.
> Why is pt_regs of type void *?
I was stupid and used #define's instead of static inlines. Sorry. I
wonder how many other arches I got that wrong, i'm sure others....
The code in arch/um/kernel/ptrace.c::syscall_trace() appeared to have a
uml_pt_regs instead of just pt_regs. Which was why audit_syscall_exit()
takes a void * instead of a pt_regs. We pass that right back to
regs_return_value(). I believe the correct code should be:
static inline long regs_return_value(struct uml_pt_regs *r)
{
return UPT_SYSCALL_RET(r);
}
>
> gcc complains:
> In file included from include/linux/fsnotify.h:15:0,
> from include/linux/security.h:26,
> from init/main.c:32:
> include/linux/audit.h: In function ‘audit_syscall_exit’:
> include/linux/audit.h:440:17: warning: dereferencing ‘void *’ pointer
> include/linux/audit.h:440:3: error: invalid use of void expression
> include/linux/audit.h:441:21: warning: dereferencing ‘void *’ pointer
> include/linux/audit.h:441:21: error: void value not ignored as it ought to be
>
> Thanks,
> //richard
WARNING: multiple messages have this Message-ID (diff)
From: Eric Paris <eparis@redhat.com>
To: Richard Weinberger <richard@nod.at>
Cc: linux-mips@linux-mips.org, linux-ia64@vger.kernel.org,
linux-sh@vger.kernel.org, heiko.carstens@de.ibm.com,
oleg@redhat.com, paulus@samba.org, hpa@zytor.com,
sparclinux@vger.kernel.org, linux-s390@vger.kernel.org,
x86@kernel.org, mingo@redhat.com, fenghua.yu@intel.com,
user-mode-linux-devel@lists.sourceforge.net,
microblaze-uclinux@itee.uq.edu.au, jdike@addtoit.com,
viro@zeniv.linux.org.uk, tglx@linutronix.de, monstr@monstr.eu,
tony.luck@intel.com, linux-kernel@vger.kernel.org,
ralf@linux-mips.org, lethal@linux-sh.org, schwidefsky@de.ibm.com,
linux390@de.ibm.com, akpm@linux-foundation.org,
linuxppc-dev@lists.ozlabs.org, davem@davemloft.net
Subject: Re: [PATCH] Audit: push audit success and retcode into arch ptrace.h
Date: Thu, 02 Jun 2011 19:06:46 -0400 [thread overview]
Message-ID: <4DE81786.60702@redhat.com> (raw)
In-Reply-To: <201106030032.17398.richard@nod.at>
On 06/02/2011 06:32 PM, Richard Weinberger wrote:
> Am Donnerstag 02 Juni 2011, 23:04:58 schrieb Eric Paris:
>> b/arch/um/sys-i386/shared/sysdep/ptrace.h index d50e62e..ef5c310 100644
>> --- a/arch/um/sys-i386/shared/sysdep/ptrace.h
>> +++ b/arch/um/sys-i386/shared/sysdep/ptrace.h
>> @@ -162,6 +162,7 @@ struct syscall_args {
>> #define UPT_ORIG_SYSCALL(r) UPT_EAX(r)
>> #define UPT_SYSCALL_NR(r) UPT_ORIG_EAX(r)
>> #define UPT_SYSCALL_RET(r) UPT_EAX(r)
>> +#define regs_return_value UPT_SYSCALL_RET
>
> This does not work at all.
> UPT_SYSCALL_RET expects something of type struct uml_pt_regs.
>
> #define regs_return_value REGS_EAX
> Would be correct. (For x86_64 it needs to be REGS_RAX)
>
> But there seems to be another problem.
> Why is pt_regs of type void *?
I was stupid and used #define's instead of static inlines. Sorry. I
wonder how many other arches I got that wrong, i'm sure others....
The code in arch/um/kernel/ptrace.c::syscall_trace() appeared to have a
uml_pt_regs instead of just pt_regs. Which was why audit_syscall_exit()
takes a void * instead of a pt_regs. We pass that right back to
regs_return_value(). I believe the correct code should be:
static inline long regs_return_value(struct uml_pt_regs *r)
{
return UPT_SYSCALL_RET(r);
}
>
> gcc complains:
> In file included from include/linux/fsnotify.h:15:0,
> from include/linux/security.h:26,
> from init/main.c:32:
> include/linux/audit.h: In function ‘audit_syscall_exit’:
> include/linux/audit.h:440:17: warning: dereferencing ‘void *’ pointer
> include/linux/audit.h:440:3: error: invalid use of void expression
> include/linux/audit.h:441:21: warning: dereferencing ‘void *’ pointer
> include/linux/audit.h:441:21: error: void value not ignored as it ought to be
>
> Thanks,
> //richard
next prev parent reply other threads:[~2011-06-02 23:06 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-02 21:04 [PATCH] Audit: push audit success and retcode into arch ptrace.h Eric Paris
2011-06-02 21:04 ` Eric Paris
2011-06-02 21:04 ` Eric Paris
2011-06-02 21:04 ` Eric Paris
2011-06-02 21:18 ` H. Peter Anvin
2011-06-02 21:18 ` H. Peter Anvin
2011-06-02 21:18 ` H. Peter Anvin
2011-06-02 22:32 ` Richard Weinberger
2011-06-02 22:32 ` Richard Weinberger
2011-06-02 22:32 ` Richard Weinberger
2011-06-02 22:32 ` Richard Weinberger
2011-06-02 23:00 ` Tony Luck
2011-06-02 23:00 ` Tony Luck
2011-06-02 23:00 ` Tony Luck
2011-06-02 23:00 ` Tony Luck
2011-06-02 23:03 ` Richard Weinberger
2011-06-02 23:03 ` Richard Weinberger
2011-06-02 23:03 ` Richard Weinberger
2011-06-02 23:03 ` Richard Weinberger
2011-06-02 23:07 ` Eric Paris
2011-06-02 23:07 ` Eric Paris
2011-06-02 23:07 ` Eric Paris
2011-06-02 23:06 ` Eric Paris [this message]
2011-06-02 23:06 ` Eric Paris
2011-06-02 23:06 ` Eric Paris
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DE81786.60702@redhat.com \
--to=eparis@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=davem@davemloft.net \
--cc=fenghua.yu@intel.com \
--cc=heiko.carstens@de.ibm.com \
--cc=hpa@zytor.com \
--cc=jdike@addtoit.com \
--cc=lethal@linux-sh.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux390@de.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=microblaze-uclinux@itee.uq.edu.au \
--cc=mingo@redhat.com \
--cc=monstr@monstr.eu \
--cc=oleg@redhat.com \
--cc=paulus@samba.org \
--cc=ralf@linux-mips.org \
--cc=richard@nod.at \
--cc=schwidefsky@de.ibm.com \
--cc=sparclinux@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=user-mode-linux-devel@lists.sourceforge.net \
--cc=viro@zeniv.linux.org.uk \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.