(handle_v5): read sendauth version correctly.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6257 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -387,18 +387,22 @@ handle_v5(krb5_context context,
|
|||||||
int fd)
|
int fd)
|
||||||
{
|
{
|
||||||
krb5_error_code ret;
|
krb5_error_code ret;
|
||||||
u_char tmp[4];
|
u_char version[sizeof(KRB5_SENDAUTH_VERSION)];
|
||||||
krb5_ticket *ticket;
|
krb5_ticket *ticket;
|
||||||
krb5_principal server;
|
krb5_principal server;
|
||||||
char *client;
|
char *client;
|
||||||
void *kadm_handle;
|
void *kadm_handle;
|
||||||
|
|
||||||
krb5_net_read(context, &fd, tmp, len);
|
if (len != sizeof(KRB5_SENDAUTH_VERSION))
|
||||||
if(len != sizeof(KRB5_SENDAUTH_VERSION) ||
|
krb5_errx(context, 1, "bad sendauth len %d", len);
|
||||||
memcmp(tmp, KRB5_SENDAUTH_VERSION, len) != 0)
|
if(krb5_net_read(context, &fd, version, len) != len)
|
||||||
krb5_errx(context, 1, "bad sendauth version %.8s", tmp);
|
krb5_err (context, 1, errno, "reading sendauth version");
|
||||||
|
if(memcmp(version, KRB5_SENDAUTH_VERSION, len) != 0)
|
||||||
|
krb5_errx(context, 1, "bad sendauth version %.8s", version);
|
||||||
|
|
||||||
krb5_parse_name(context, KADM5_ADMIN_SERVICE, &server);
|
ret = krb5_parse_name(context, KADM5_ADMIN_SERVICE, &server);
|
||||||
|
if (ret)
|
||||||
|
krb5_err (context, 1, ret, "krb5_parse_name %s", KADM5_ADMIN_SERVICE);
|
||||||
ret = krb5_recvauth(context, &ac, &fd, KADMIN_APPL_VERSION,
|
ret = krb5_recvauth(context, &ac, &fd, KADMIN_APPL_VERSION,
|
||||||
server, KRB5_RECVAUTH_IGNORE_VERSION,
|
server, KRB5_RECVAUTH_IGNORE_VERSION,
|
||||||
keytab, &ticket);
|
keytab, &ticket);
|
||||||
@@ -406,7 +410,9 @@ handle_v5(krb5_context context,
|
|||||||
|
|
||||||
if(ret)
|
if(ret)
|
||||||
krb5_err(context, 1, ret, "krb5_recvauth");
|
krb5_err(context, 1, ret, "krb5_recvauth");
|
||||||
krb5_unparse_name(context, ticket->client, &client);
|
ret = krb5_unparse_name(context, ticket->client, &client);
|
||||||
|
if (ret)
|
||||||
|
krb5_err (context, 1, ret, "krb5_unparse_name");
|
||||||
ret = kadm5_init_with_password_ctx(context,
|
ret = kadm5_init_with_password_ctx(context,
|
||||||
client,
|
client,
|
||||||
NULL,
|
NULL,
|
||||||
|
Reference in New Issue
Block a user