[611] in Kerberos-V5-bugs
Re: Kerberos 5 on SunOS 4.1.3.
daemon@ATHENA.MIT.EDU (Tom Yu)
Tue Aug 2 05:41:09 1994
Date: Tue, 2 Aug 1994 05:38:38 -0400
To: adrian@ada1.elan.af.mil (L. Adrian Griffis)
Cc: krb5-bugs@MIT.EDU, adrian@ada1.elan.af.mil
In-Reply-To: [606]
From: Tom Yu <tlyu@MIT.EDU>
>[0606] daemon@ATHENA.MIT.EDU (L. Adrian Griffis) Kerberos-V5-bugs 07/27/94 17:18 (32 lines)
>From: adrian@ada1.elan.af.mil (L. Adrian Griffis)
>Date: Wed, 27 Jul 94 13:59:51 PDT
> 1) BSDSIGS does not get defined. This seems to lead to a conflict between
> various system and package signal handling functions. I've modified
> The central Makefile to pass "-DBSDSIGS" to all compiles.
I am still trying to work out a good way to resolve this.
> 2) The macro "ANSI_STDIO" is defined (I have not investigated the reason
> for this). In "lib/krb5/keytab/file/ktf_util.c", on line 99, this macro
> causes the static variable fopen_mode_rbplus to point to the string
> constant "rb+". When this string is passed to fopen(), the 'r' is found,
> and recognized, but the 'b' is not supported. fopen() stops processing
> the mode string at this point, and never finds the '+'. The causes the
> file (the keytab) to be opened read only.
It turns out that ANSI_STDIO gets defined in autoconf.h, which
autoconf generates. Unfortunately, the test that causes ANSI_STDIO to
be defined is really looking for setvbuf(). It turns out that some
systems, such as SunOS, provide the setvbuf() function but not other
ANSI functionality, such as binary mode fopen(). I have made patches
so that setvbuf() is detected separately from ANSI stdio
functionality. Unfortunately this means that cross-compiling will
lose, since it is now necessary to do a compile-and-run test in order
to verify the functionality of binary fopen().
---Tom