[OpenAFS] Solaris 10 11/06 afs 1.4.2 pam module panic.

Dale Ghent daleg@umbc.edu
Tue, 19 Dec 2006 21:11:44 -0500


On Dec 19, 2006, at 9:04 AM, Dale Ghent wrote:

> With Solaris 10 11/06 (aka update 3), Solaris Trusted Extensions  
> were introduced, and this added a new member (cr_label) to the  
> cred_t struct.
>
> I'm guessing that we're stomping around inside cred_t when storing  
> the PAG there (right?) and the new member is throwing everything off.

Okay, I looked into this more and a kind soul at Sun pointed me to  
the new (as of Solaris 10) ddi_cred(9F) man page.

This page details public (yet "evolving") interfaces to the otherwise  
private cred_t struct. These interfaces seem to have been implemented  
for the NFSv4 functionality in Solaris 10.

So, instead of molesting a cred_t directly, we should instead be  
using these new calls when compiling on AFS_SUN510_ENV. I made and  
tested a patch to do just that.

I tested this patch on a Solaris 10 SPARC box with kernel patch  
118833-33, the rev delivered with Solaris 10 11/06. I also tested  
this patch by compiling it on a pre-11/06 box with kernel patch  
118833-17, and then used that kernel module there and on the 11/06  
box.  The changes I made passed those tests, the latter one being the  
important one. I also ran the changes through 'cc -E' to make sure I  
wasn't missing anything.

Please download a tarball of unified diffs (against the 1.4.2 code  
base) from the following URL, apply, compile, and test. Like I said I  
have the patches working here on two Solaris 10 boxes, one with a rev  
17 kernel patch and the other with rev 33. I just want to make sure  
I'm not doing something wrong. Speak up if you have any cstyle nits.

     http://elektronkind.org/osol/openafs-solaris-tx-compat.patch

Put it in the base of your openafs 1.4.2 source tree and apply with  
'patch -p0 ...'

/dale

--
Dale Ghent
UNIX Systems Specialist
UMBC - Office of Information Technology
ECS 201 - x51705