root is in too many groups
John F Carr
jfc at athena.mit.edu
Thu May 9 18:27:29 AEST 1991
This is a bug in the authkern_marhsal() function in the NFS client kernel
code. The code sends up to NGROUPS (32) groups in the RPC request instead
of 8 (what the protocol allows). To fix for the PS/2, extract auth_kern.o
from /usr/sys/386/nfslib.a and use /bin/dis to disassemble it. This block
of code near the beginning of authkern_marshal() has the bug:
%_label_1:
0x58: a1 b4 02 00 00 movl u + 0x2b4, %eax
0x5d: 05 80 00 00 00 addl $128, %eax
0x62: 3b c6 cmpl %esi, %eax
0x64: 72 0c jb %_label_0
0x66: 83 3e ff cmpl $-1, (%esi)
0x69: 74 07 jz %_label_0
0x6b: 83 c6 04 addl $4, %esi
0x6e: 8b c6 movl %esi, %eax
0x70: eb e6 jmp %_label_1
%_label_0:
128 is NGROUPS * sizeof (int). This should be 8 * sizeof (int) = 32. If
you change the addl instruction, assemble with the change, and put the
modified file back into nfslib.a the group problems should stop. I'm not
sure how to get dis to produce code that you can reassemble for this object
file; it might be easier to use emacs to patch the binary.
--
John Carr (jfc at athena.mit.edu)
More information about the Comp.unix.aix
mailing list