gss: intern OIDs (#447)

Intern OIDs so that gss_release_oid() can be a NOOP.
This commit is contained in:
Luke Howard
2018-12-18 16:02:05 +11:00
committed by Nico Williams
parent a8f0905b71
commit 4a93c4774a
28 changed files with 232 additions and 80 deletions

View File

@@ -47,22 +47,5 @@ gss_duplicate_oid (
return GSS_S_COMPLETE;
}
*dest_oid = malloc(sizeof(**dest_oid));
if (*dest_oid == GSS_C_NO_OID) {
*minor_status = ENOMEM;
return GSS_S_FAILURE;
}
(*dest_oid)->elements = malloc(src_oid->length);
if ((*dest_oid)->elements == NULL) {
free(*dest_oid);
*dest_oid = GSS_C_NO_OID;
*minor_status = ENOMEM;
return GSS_S_FAILURE;
}
memcpy((*dest_oid)->elements, src_oid->elements, src_oid->length);
(*dest_oid)->length = src_oid->length;
*minor_status = 0;
return GSS_S_COMPLETE;
return _gss_intern_oid(minor_status, src_oid, dest_oid);
}