*
*/
+/*
+ * OID utility routines.
+ */
+
#include "gssapiP_eap.h"
OM_uint32
{
gss_OID p;
- *minor = 0;
*newOid = GSS_C_NO_OID;
p = (gss_OID)GSSEAP_MALLOC(sizeof(*p));
p->elements = GSSEAP_MALLOC(p->length);
if (p->elements == NULL) {
GSSEAP_FREE(p);
+ *minor = ENOMEM;
return GSS_S_FAILURE;
}
memcpy(p->elements, oid->elements, p->length);
*newOid = p;
+ *minor = 0;
return GSS_S_COMPLETE;
}
if (oid == GSS_C_NO_OID) {
*minor = EINVAL;
- return GSS_S_FAILURE;
+ return GSS_S_CALL_INACCESSIBLE_READ | GSS_S_FAILURE;
}
+
if (oid->length < prefix_len) {
- *minor = ERANGE;
+ *minor = GSSEAP_WRONG_SIZE;
return GSS_S_FAILURE;
}
suffix = osuffix;
if (oid->length < prefix_len + nbytes) {
- *minor = ERANGE;
+ *minor = GSSEAP_WRONG_SIZE;
return GSS_S_FAILURE;
}
for (i = 0; i < slen; i++) {
*suffix = (*suffix << 7) | (op[i] & 0x7f);
if (i + 1 != slen && (op[i] & 0x80) == 0) {
- *minor = EINVAL;
+ *minor = GSSEAP_WRONG_SIZE;
return GSS_S_FAILURE;
}
}