Neale Ferguson writes:
> In gssapi.h the gss_buffer_desc structure looks like:
> 
> typedef struct gss_buffer_desc_struct {
>         size_t length;
>         void *value;
> } gss_buffer_desc, *gss_buffer_t;
> 
> In ssh/sshd/auth2-gss.c a call to packet_get_string() is made using the 
> length field of this structure. This requires a uint_t parameter. Now for 
> sparc/i386 in 32-bit mode this is what size_t is. However, for other 
> platforms and for the 64-bit world size_t may be unsigned long. Thus, 
> compilation of auth2-gss.c results in a warning which, because of the -Werror 
> flag, results in the warning being treated as an error and we fail.

You're right that when compiling in ILP32, size_t is 32 bits and when
in LP64, it's 64 bits, but where are you seeing a warning or error?

That code doesn't seem to fail on our existing 64-bit plaforms.

> Should, in fact, length be uint_t (or OM_uint32)?

I don't think so.  If it's used across the system call boundary, then
you need to use the STRUCT_DECL trick (which is what those _SYSCALL32
bits are about), but I don't see that it is.

-- 
James Carlson, Solaris Networking              <[EMAIL PROTECTED]>
Sun Microsystems / 35 Network Drive        71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677
_______________________________________________
opensolaris-code mailing list
opensolaris-code@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to