[PATCH] set saner MAX_ARGS
Dmitry V. Levin
ldv at altlinux.org
Fri Aug 19 18:55:45 UTC 2011
On Fri, Aug 19, 2011 at 05:38:19PM +0200, Denys Vlasenko wrote:
> On Fri, 2011-08-19 at 00:02 +0400, Dmitry V. Levin wrote:
[...]
> > > --- strace.5/defs.h 2011-08-18 11:57:30.512416447 +0200
> > > +++ strace.6/defs.h 2011-08-18 11:46:56.349540479 +0200
> > > @@ -64,7 +64,7 @@
> > > #define DEFAULT_ACOLUMN 40 /* default alignment column for results */
> > > #endif
> > > #ifndef MAX_ARGS
> > > -# ifdef HPPA
> > > +# if defined HPPA || defined X86_64 || defined I386
> > > # define MAX_ARGS 6 /* maximum number of args to a syscall */
> > > # else
> > > /* Way too big. Switch your arch to saner size after you tested that it works */
> >
> > What about other architectures? Is there any with MAX_ARGS > 6?
> > Can we assume MAX_ARGS == 6 on linux?
>
> I looked deeper. Apparently FREEBSD needs MAX_ARGS = 8. Also there's
> a bug in sys_mmap64 where it will try to access (but not write to)
> u_args[6,7] wrongly - see other mail.
>
> My current knowledge is summed up by this comment:
>
> /* Maximum number of args to a syscall.
> *
> * Make sure that all entries in all syscallent.h files
> * have nargs <= MAX_ARGS!
> * linux/<ARCH>/syscallent.h: ia64 has many syscalls with
> * nargs = 8, mips has two with nargs = 7 (both are printargs),
> * all others are <= 6.
> * freebsd/i386/syscallent.h: one syscall with nargs = 8
> * (sys_sendfile, looks legitimate)
> * and one with nargs = 7 (sys_mmap, maybe it should have 6?).
> * sunos4/syscallent.h: all are <= 6.
> * svr4/syscallent.h: all are -1.
> */
>
> Basically, all linux arches sans ia64 should be ok with MAX_ARGS = 6.
All linux/ia64/syscallent.h entries with nargs == 8 are printargs.
I checked those 3 of them that have meaningful sys_name (other than SYS_*),
they definitely take less than 6 arguments. So I suppose ia64 entries
with nargs == 8 are just wrong, and we can safely assume MAX_ARGS == 6
on linux.
--
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20110819/f4f3c196/attachment.bin>
More information about the Strace-devel
mailing list