Just in case this one came out in html too, this should be only in text.

----- Forwarded by Debora Velarde/Austin/IBM on 04/29/2005 12:27 PM -----

Debora Velarde/Austin/IBM wrote on 04/28/2005 03:39:09 PM:

> In our syscalls, we are currently checking the expected values of
> some of the syscall parameters.  We do not always check a0, a1, a2,
> and a3.  One syscall may check a0, a1, and a2.  Another may only
> check a0, and a1.

>
> When we compile our syscalls in 32bit mode on a 64bit system, the
> a0, a1, a2, a3 values are no longer what we expected them to be.

>
> For example, in our access syscall test

>  a0 = pathname
>  a1 = mode
>
> When we compile and run in 64bit mode:

> The audit record looks like:
> type=KERNEL msg=audit(1114696605.916:2151478): item=0 name=".
> /mytest.9825" inode=6062205 dev=fd:00 mode=0100004 uid=0 gid=0 rdev=00:00

> type=KERNEL msg=audit(1114696605.916:2151478): syscall=21
> arch=c000003e success=yes exit=0 a0=50a460 a1=4 a2=3cb762ea03 a3=0
> items=1 pid=9825 loginuid=500 uid=0 gid=0 euid=0 suid=0 fsuid=0
> egid=0 sgid=0 fsgid=0 comm="access_test"
> exe=/deb/rhcc/eal4/tests/LTP/ltp-full/testcases/audit/filters/access_test

>
> From our test:

> access_test    0  INFO  :  expected (pfilename) a0 s=./mytest.9825
> h=50a460 d=5284960 u=5284960.  (expected a0 printed as a string,
> hex, decimal, unsigned values)

>   Note audit record a0=50a460 which matches expected value printed in hex
>
> access_test    0  INFO  :  expected (access_mode) a1 h=4 d=4 u=4.  
> (expected a1 printed as a hex, decimal, and unsigned value)

>   Note audit record a1=4 which matches expected (printed in %x, %d, and %u)
>
> access_test    0  INFO  :  expected (pfilename) objectname s=./mytest.9825.

>   Matches "name" in audit record"
>
> access_test    1  PASS  :  Expected record found!

>
> When we compile and run in 32bit mode:

> type=KERNEL msg=audit(1114696996.822:2260436): item=0 name=".
> /mytest.10196" inode=6062205 dev=fd:00 mode=0100004 uid=0 gid=0 rdev=00:00

> type=KERNEL msg=audit(1114696996.822:2260436): syscall=33
> arch=40000003 success=yes exit=0 a0=80510e0 a1=76c378 a2=0 a3=0
> items=1 pid=10196 loginuid=500 uid=0 gid=0 euid=0 suid=0 fsuid=0
> egid=0 sgid=0 fsgid=0 comm="access_test"
> exe=/deb/rhcc/eal4/tests/LTP/ltp-full/testcases/audit/filters/access_test

>
> From our test

> access_test    0  INFO  :  expected (pfilename) a0 s=./mytest.10196
> h=8051260 d=134550112 u=134550112.

>  Note audit record a0=80510e0 does NOT match expected (in %x, %d, or
> %u format).

>
> access_test    0  INFO  :  expected (access_mode) a1 h=4 d=4 u=4.

>  Note audit record a1=76c378.  does NOT match expected (in %x , %d,
> or %u format).

>
> access_test    0  INFO  :  expected (pfilename) objectname s=./mytest.10196.

>
> access_test    1  FAIL  :  Expected record not found.

>
> I know David put some hooks in for the ipc syscalls, I haven't been
> able to test those to see if that corrects this problem for those or
> not.  I'm not sure when that fix was introduced.  I'm currently
> running on kernel.2.6.9-5.0.3.EL.audit.20 and this problem is true
> for the ipc syscalls as well.

>
> If that does fix the problem, should our tests only check a0, a1,
> a2, a3 values for the syscalls which David is adding these hooks?

>
> Thanks,

> debbie