This is the mail archive of the libc-hacker@cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: secureRPC on alpha/binary compatibility


> Date: Fri, 9 Apr 1999 17:40:47 +0200
> From: Thorsten Kukuk <kukuk@suse.de>
> 
> 
> Hello,
> 
> I have found a big problem. SecureRPC doesn't work on alpha. I could
> solved a lot of problems like long pointer to an int array, etc.
> 
> But now I have a real problem:
> 
> /* A des authentication verifier */
> struct authdes_verf
>   {
>     union
>       {
>         struct timeval adv_ctime;       /* clear time */
>         des_block adv_xtime;            /* crypt time */
>       }
>     adv_time_u;
>     uint32_t adv_int_u;
>   };
> 
> This struct is from rpc/auth_des.h. The problem is, sizeof (struct timeval)
> is 16 on Alpha, but 8 on Intel. sizeof des_block is 8 on both. The fields
> doesn't match on Alpha, secureRPC fails :-(
> 
> I could try to write wrappers around this in glibc/sunrpc, so that it 
> could work. But I think this is no solution, because this struct is also
> used by user code. If I change the header to create our own rpc_timeval
> struct, it could break binary compatibility with existing programs on 
> Alpha. Since SecureRPC doesn't work, and I have only a few bug reports 
> because of NIS+, I think there are not a lot of programs. So we should 
> make the changes asap. 

Yes.  adv_ctime is just the decrypted adv_xtime.  So it has to be 8
bytes long.

I think it's supposed to be an array of two 4-byte words.  I can't
find any instance of 'adv_ctime' in the code.

If existing code that uses it doesn't work, then there is no point
worrying about binary compatibility :-).

-- 
Geoffrey Keating <geoffk@ozemail.com.au>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]