set minor_status in some cases where it was not done

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9696 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
2001-02-17 23:47:55 +00:00
parent c83d198455
commit acdf864037
2 changed files with 34 additions and 14 deletions

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997 Kungliga Tekniska H<>gskolan * Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden). * (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved. * All rights reserved.
* *
@@ -44,8 +44,10 @@ import_krb5_name (OM_uint32 *minor_status,
char *tmp; char *tmp;
tmp = malloc (input_name_buffer->length + 1); tmp = malloc (input_name_buffer->length + 1);
if (tmp == NULL) if (tmp == NULL) {
*minor_status = ENOMEM;
return GSS_S_FAILURE; return GSS_S_FAILURE;
}
memcpy (tmp, memcpy (tmp,
input_name_buffer->value, input_name_buffer->value,
input_name_buffer->length); input_name_buffer->length);
@@ -57,10 +59,13 @@ import_krb5_name (OM_uint32 *minor_status,
free (tmp); free (tmp);
if (kerr == 0) if (kerr == 0)
return GSS_S_COMPLETE; return GSS_S_COMPLETE;
else if (kerr == KRB5_PARSE_ILLCHAR || kerr == KRB5_PARSE_MALFORMED) else if (kerr == KRB5_PARSE_ILLCHAR || kerr == KRB5_PARSE_MALFORMED) {
*minor_status = kerr;
return GSS_S_BAD_NAME; return GSS_S_BAD_NAME;
else } else {
*minor_status = kerr;
return GSS_S_FAILURE; return GSS_S_FAILURE;
}
} }
static OM_uint32 static OM_uint32
@@ -106,10 +111,13 @@ import_hostbased_name (OM_uint32 *minor_status,
*minor_status = kerr; *minor_status = kerr;
if (kerr == 0) if (kerr == 0)
return GSS_S_COMPLETE; return GSS_S_COMPLETE;
else if (kerr == KRB5_PARSE_ILLCHAR || kerr == KRB5_PARSE_MALFORMED) else if (kerr == KRB5_PARSE_ILLCHAR || kerr == KRB5_PARSE_MALFORMED) {
*minor_status = kerr;
return GSS_S_BAD_NAME; return GSS_S_BAD_NAME;
else } else {
*minor_status = kerr;
return GSS_S_FAILURE; return GSS_S_FAILURE;
}
} }
OM_uint32 gss_import_name OM_uint32 gss_import_name
@@ -132,6 +140,8 @@ OM_uint32 gss_import_name
return import_krb5_name (minor_status, return import_krb5_name (minor_status,
input_name_buffer, input_name_buffer,
output_name); output_name);
else else {
*minor_status = 0;
return GSS_S_BAD_NAMETYPE; return GSS_S_BAD_NAMETYPE;
}
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997 Kungliga Tekniska H<>gskolan * Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden). * (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved. * All rights reserved.
* *
@@ -44,8 +44,10 @@ import_krb5_name (OM_uint32 *minor_status,
char *tmp; char *tmp;
tmp = malloc (input_name_buffer->length + 1); tmp = malloc (input_name_buffer->length + 1);
if (tmp == NULL) if (tmp == NULL) {
*minor_status = ENOMEM;
return GSS_S_FAILURE; return GSS_S_FAILURE;
}
memcpy (tmp, memcpy (tmp,
input_name_buffer->value, input_name_buffer->value,
input_name_buffer->length); input_name_buffer->length);
@@ -57,10 +59,13 @@ import_krb5_name (OM_uint32 *minor_status,
free (tmp); free (tmp);
if (kerr == 0) if (kerr == 0)
return GSS_S_COMPLETE; return GSS_S_COMPLETE;
else if (kerr == KRB5_PARSE_ILLCHAR || kerr == KRB5_PARSE_MALFORMED) else if (kerr == KRB5_PARSE_ILLCHAR || kerr == KRB5_PARSE_MALFORMED) {
*minor_status = kerr;
return GSS_S_BAD_NAME; return GSS_S_BAD_NAME;
else } else {
*minor_status = kerr;
return GSS_S_FAILURE; return GSS_S_FAILURE;
}
} }
static OM_uint32 static OM_uint32
@@ -106,10 +111,13 @@ import_hostbased_name (OM_uint32 *minor_status,
*minor_status = kerr; *minor_status = kerr;
if (kerr == 0) if (kerr == 0)
return GSS_S_COMPLETE; return GSS_S_COMPLETE;
else if (kerr == KRB5_PARSE_ILLCHAR || kerr == KRB5_PARSE_MALFORMED) else if (kerr == KRB5_PARSE_ILLCHAR || kerr == KRB5_PARSE_MALFORMED) {
*minor_status = kerr;
return GSS_S_BAD_NAME; return GSS_S_BAD_NAME;
else } else {
*minor_status = kerr;
return GSS_S_FAILURE; return GSS_S_FAILURE;
}
} }
OM_uint32 gss_import_name OM_uint32 gss_import_name
@@ -132,6 +140,8 @@ OM_uint32 gss_import_name
return import_krb5_name (minor_status, return import_krb5_name (minor_status,
input_name_buffer, input_name_buffer,
output_name); output_name);
else else {
*minor_status = 0;
return GSS_S_BAD_NAMETYPE; return GSS_S_BAD_NAMETYPE;
}
} }