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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -405,13 +405,12 @@ fcc_store_cred(krb5_context context,
|
|||||||
sp = krb5_storage_from_fd(fd);
|
sp = krb5_storage_from_fd(fd);
|
||||||
krb5_storage_set_eof_code(sp, KRB5_CC_END);
|
krb5_storage_set_eof_code(sp, KRB5_CC_END);
|
||||||
storage_set_flags(context, sp, FCACHE(id)->version);
|
storage_set_flags(context, sp, FCACHE(id)->version);
|
||||||
if (krb5_config_get_bool_default(context, NULL, TRUE,
|
if (!krb5_config_get_bool_default(context, NULL, TRUE,
|
||||||
"libdefaults",
|
"libdefaults",
|
||||||
"fcc-mit-ticketflags",
|
"fcc-mit-ticketflags",
|
||||||
NULL))
|
NULL))
|
||||||
ret = _krb5_store_creds_heimdal_0_7(sp, creds);
|
krb5_storage_set_flags(sp, KRB5_STORAGE_CREDS_FLAGS_WRONG_BITORDER);
|
||||||
else
|
ret = krb5_store_creds(sp, creds);
|
||||||
ret = _krb5_store_creds_heimdal_pre_0_7(sp, creds);
|
|
||||||
krb5_storage_free(sp);
|
krb5_storage_free(sp);
|
||||||
}
|
}
|
||||||
fcc_unlock(context, fd);
|
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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -455,6 +455,7 @@ typedef Authenticator krb5_donot_replay;
|
|||||||
#define KRB5_STORAGE_BYTEORDER_BE 0x00 /* default */
|
#define KRB5_STORAGE_BYTEORDER_BE 0x00 /* default */
|
||||||
#define KRB5_STORAGE_BYTEORDER_LE 0x20
|
#define KRB5_STORAGE_BYTEORDER_LE 0x20
|
||||||
#define KRB5_STORAGE_BYTEORDER_HOST 0x40
|
#define KRB5_STORAGE_BYTEORDER_HOST 0x40
|
||||||
|
#define KRB5_STORAGE_CREDS_FLAGS_WRONG_BITORDER 0x80
|
||||||
|
|
||||||
struct krb5_storage_data;
|
struct krb5_storage_data;
|
||||||
typedef struct krb5_storage_data krb5_storage;
|
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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -629,7 +629,7 @@ bitswap32(int32_t b)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
krb5_error_code
|
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;
|
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 */
|
enc-tkt-in-skey bit from KDCOptions */
|
||||||
if(ret)
|
if(ret)
|
||||||
return 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);
|
ret = krb5_store_int32(sp, creds->flags.i);
|
||||||
if(ret)
|
else
|
||||||
return ret;
|
|
||||||
} else {
|
|
||||||
ret = krb5_store_int32(sp, bitswap32(TicketFlags2int(creds->flags.b)));
|
ret = krb5_store_int32(sp, bitswap32(TicketFlags2int(creds->flags.b)));
|
||||||
if(ret)
|
if(ret)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
|
||||||
ret = krb5_store_addrs(sp, creds->addresses);
|
ret = krb5_store_addrs(sp, creds->addresses);
|
||||||
if(ret)
|
if(ret)
|
||||||
return ret;
|
return ret;
|
||||||
@@ -671,28 +670,6 @@ _krb5_store_creds_internal(krb5_storage *sp, krb5_creds *creds, int v0_6)
|
|||||||
return ret;
|
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_error_code
|
||||||
krb5_ret_creds(krb5_storage *sp, krb5_creds *creds)
|
krb5_ret_creds(krb5_storage *sp, krb5_creds *creds)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user