[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#352042: Bug #352042: openssh-server: incompatible pointer types break gssapi auth on alpha, possibly others



Hi,

the actual problem is that gss_buffer_desc is defined like this in
/usr/include/gssapi/gssapi.h from libkrb5-dev:

typedef struct gss_buffer_desc_struct {
      size_t length;
      void *value;
} gss_buffer_desc, *gss_buffer_t;

size_t is 64 bit. So you need something like (untested):

--- monitor.c~  2006-02-10 10:19:16.000000000 +0100
+++ monitor.c   2006-02-10 10:32:27.000000000 +0100
@@ -1946,8 +1946,10 @@
 {
        gss_buffer_desc data, hash;
        OM_uint32 major, minor;
+       u_int length;
 
-       data.value = buffer_get_string(m, &data.length);
+       data.value = buffer_get_string(m, &length);
+       &data.length = length;
        if (data.length != 20) 
                fatal("%s: data length incorrect: %d", __func__, data.length);

and the same elsewhere.

So this is OpenBSD's flagship security product? Frankly, I'm baffled.
This is a rookie mistake, and it was even obvious from the compiler
warnings.

-- 
	Falk




Reply to: