Fix the cache flags bitorder issue with a storage flag instead of a
separate function. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@13767 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997 - 2003 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997 - 2004 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -405,13 +405,12 @@ fcc_store_cred(krb5_context context,
|
||||
sp = krb5_storage_from_fd(fd);
|
||||
krb5_storage_set_eof_code(sp, KRB5_CC_END);
|
||||
storage_set_flags(context, sp, FCACHE(id)->version);
|
||||
if (krb5_config_get_bool_default(context, NULL, TRUE,
|
||||
"libdefaults",
|
||||
"fcc-mit-ticketflags",
|
||||
NULL))
|
||||
ret = _krb5_store_creds_heimdal_0_7(sp, creds);
|
||||
else
|
||||
ret = _krb5_store_creds_heimdal_pre_0_7(sp, creds);
|
||||
if (!krb5_config_get_bool_default(context, NULL, TRUE,
|
||||
"libdefaults",
|
||||
"fcc-mit-ticketflags",
|
||||
NULL))
|
||||
krb5_storage_set_flags(sp, KRB5_STORAGE_CREDS_FLAGS_WRONG_BITORDER);
|
||||
ret = krb5_store_creds(sp, creds);
|
||||
krb5_storage_free(sp);
|
||||
}
|
||||
fcc_unlock(context, fd);
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997 - 2003 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997 - 2004 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -455,6 +455,7 @@ typedef Authenticator krb5_donot_replay;
|
||||
#define KRB5_STORAGE_BYTEORDER_BE 0x00 /* default */
|
||||
#define KRB5_STORAGE_BYTEORDER_LE 0x20
|
||||
#define KRB5_STORAGE_BYTEORDER_HOST 0x40
|
||||
#define KRB5_STORAGE_CREDS_FLAGS_WRONG_BITORDER 0x80
|
||||
|
||||
struct krb5_storage_data;
|
||||
typedef struct krb5_storage_data krb5_storage;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997-2002 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -629,7 +629,7 @@ bitswap32(int32_t b)
|
||||
*/
|
||||
|
||||
krb5_error_code
|
||||
_krb5_store_creds_internal(krb5_storage *sp, krb5_creds *creds, int v0_6)
|
||||
krb5_store_creds(krb5_storage *sp, krb5_creds *creds)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -649,15 +649,14 @@ _krb5_store_creds_internal(krb5_storage *sp, krb5_creds *creds, int v0_6)
|
||||
enc-tkt-in-skey bit from KDCOptions */
|
||||
if(ret)
|
||||
return ret;
|
||||
if (v0_6) {
|
||||
|
||||
if(krb5_storage_is_flags(sp, KRB5_STORAGE_CREDS_FLAGS_WRONG_BITORDER))
|
||||
ret = krb5_store_int32(sp, creds->flags.i);
|
||||
if(ret)
|
||||
return ret;
|
||||
} else {
|
||||
else
|
||||
ret = krb5_store_int32(sp, bitswap32(TicketFlags2int(creds->flags.b)));
|
||||
if(ret)
|
||||
return ret;
|
||||
}
|
||||
if(ret)
|
||||
return ret;
|
||||
|
||||
ret = krb5_store_addrs(sp, creds->addresses);
|
||||
if(ret)
|
||||
return ret;
|
||||
@@ -671,28 +670,6 @@ _krb5_store_creds_internal(krb5_storage *sp, krb5_creds *creds, int v0_6)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* store `creds' on `sp' returning error or zero
|
||||
*/
|
||||
|
||||
krb5_error_code
|
||||
krb5_store_creds(krb5_storage *sp, krb5_creds *creds)
|
||||
{
|
||||
return _krb5_store_creds_internal(sp, creds, 0);
|
||||
}
|
||||
|
||||
krb5_error_code
|
||||
_krb5_store_creds_heimdal_0_7(krb5_storage *sp, krb5_creds *creds)
|
||||
{
|
||||
return _krb5_store_creds_internal(sp, creds, 0);
|
||||
}
|
||||
|
||||
krb5_error_code
|
||||
_krb5_store_creds_heimdal_pre_0_7(krb5_storage *sp, krb5_creds *creds)
|
||||
{
|
||||
return _krb5_store_creds_internal(sp, creds, 1);
|
||||
}
|
||||
|
||||
krb5_error_code
|
||||
krb5_ret_creds(krb5_storage *sp, krb5_creds *creds)
|
||||
{
|
||||
|
Reference in New Issue
Block a user