Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!dali.cs.montana.edu!caen!sdd.hp.com!think.com!mintaka!bloom-picayune.mit.edu!athena.mit.edu!jfc From: jfc@athena.mit.edu (John F Carr) Newsgroups: comp.unix.aix Subject: Re: root is in too many groups Message-ID: <1991May9.082729.951@athena.mit.edu> Date: 9 May 91 08:27:29 GMT References: <1991May8.102309.21850@ioe.lon.ac.uk> Sender: news@athena.mit.edu (News system) Organization: Massachusetts Institute of Technology Lines: 27 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@athena.mit.edu)