I've been having also sorts of fun trying to get kerberos 4
authentifica tion working with postgresql-6.4.2 and KTH-KRB Ebones (http://www.pdc.kth.se/kth-kr b) on a dec alpha running DU 4.0D using the native compiler. The following patch does the trick. The rationale behind this is as follows. The KTH-KRB code header files defines lots of lengths like INST_SZ,REALM_SZ and KRB_SENDAUTH_VLEN. It also has a habit of doing things like chararray[LENGTH] = '\0' to ensure null terminated strings. In my instance this just happens to blat the kerberos principal instance string leading to error like pg_krb4_recvauth: kerberos error: Can't decode authenticator (krb_rd_req ) The application code that comes with KTH-KRB uses "KRB_SENDAUTH_VLEN + 1" and sometimes uses "INST_SZ + 1" so it seems safest to put that 1 char buffer in the appropriate place. Rodney McDuff
This commit is contained in:
parent
aba8c12f67
commit
9cab13c42e
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.33 1999/02/13 23:15:38 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.34 1999/03/14 16:06:42 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -77,8 +77,8 @@ pg_krb4_recvauth(Port *port)
|
||||
{
|
||||
long krbopts = 0; /* one-way authentication */
|
||||
KTEXT_ST clttkt;
|
||||
char instance[INST_SZ],
|
||||
version[KRB_SENDAUTH_VLEN];
|
||||
char instance[INST_SZ+1],
|
||||
version[KRB_SENDAUTH_VLEN+1];
|
||||
AUTH_DAT auth_data;
|
||||
Key_schedule key_sched;
|
||||
int status;
|
||||
|
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.26 1999/02/13 23:22:39 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.27 1999/03/14 16:06:43 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -144,8 +144,8 @@ pg_krb4_init()
|
||||
static char *
|
||||
pg_krb4_authname(char *PQerrormsg)
|
||||
{
|
||||
char instance[INST_SZ];
|
||||
char realm[REALM_SZ];
|
||||
char instance[INST_SZ+1];
|
||||
char realm[REALM_SZ+1];
|
||||
int status;
|
||||
static char name[SNAME_SZ + 1] = "";
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user