]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Document gss_internal_release_oid() master 1517/head
authorGreg Hudson <ghudson@mit.edu>
Sat, 23 May 2026 21:48:35 +0000 (17:48 -0400)
committerGreg Hudson <ghudson@mit.edu>
Thu, 28 May 2026 06:23:29 +0000 (02:23 -0400)
In the GSSAPI mechanism module documentation, recommend implementing
gss_internal_release_oid() and specify its interface.

doc/plugindev/gssapi.rst

index 0918d1511cbf58d2377cf3501a8009130e89bcd9..3fc065c2514c5f2af6f9cfb580de3b39064afc44 100644 (file)
@@ -20,6 +20,20 @@ a module does not wish to implement a GSSAPI extension, it can simply
 refrain from exporting it, and the mechglue will fail gracefully if
 the application calls that function.
 
+GSSAPI mechanism modules should implement a
+**gss_internal_release_oid** function, to help protect against an
+application mistakenly calling **gss_release_oid** on a statically
+allocated OID pointer.  The function should have the following
+signature::
+
+    OM_uint32 gss_internal_release_oid(OM_uint32 *minor_status,
+        gss_OID *oid);
+
+If the function recognizes ``*oid`` as a pointer that could be yielded
+by one of the module's other functions, it should set ``*oid`` to
+**GSS_C_NO_OID** and return **GSS_S_COMPLETE**.  Otherwise it should
+return **GSS_S_CONTINUE_NEEDED**.
+
 The mechglue does not invoke a module's **gss_add_cred**,
 **gss_add_cred_from**, **gss_add_cred_impersonate_name**, or
 **gss_add_cred_with_password** function.  A mechanism only needs to