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: