]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:pyrpc: make use of dcerpc_binding_handle_auth_session_key()
authorStefan Metzmacher <metze@samba.org>
Sat, 14 Sep 2024 12:20:46 +0000 (14:20 +0200)
committerJule Anger <janger@samba.org>
Thu, 12 Jun 2025 11:27:14 +0000 (11:27 +0000)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
(cherry picked from commit 38874d28404f49a075bab71fb7357d266173791a)

source4/librpc/rpc/pyrpc.c

index b8e1ac0c35e0ba3a447e471d678bd9fe65592451..4f7f4cd1d9643032a9e888e38f7c699f3c829e75 100644 (file)
@@ -161,30 +161,18 @@ static PyObject *py_iface_user_session_key(PyObject *obj, void *closure)
        dcerpc_InterfaceObject *iface = (dcerpc_InterfaceObject *)obj;
        TALLOC_CTX *mem_ctx;
        NTSTATUS status;
-       struct gensec_security *security = NULL;
        DATA_BLOB session_key = data_blob_null;
        static PyObject *session_key_obj = NULL;
 
-       if (iface->pipe == NULL) {
-               PyErr_SetNTSTATUS(NT_STATUS_NO_USER_SESSION_KEY);
-               return NULL;
-       }
-
-       if (iface->pipe->conn == NULL) {
-               PyErr_SetNTSTATUS(NT_STATUS_NO_USER_SESSION_KEY);
-               return NULL;
-       }
-
-       if (iface->pipe->conn->security_state.generic_state == NULL) {
+       if (iface->binding_handle == NULL) {
                PyErr_SetNTSTATUS(NT_STATUS_NO_USER_SESSION_KEY);
                return NULL;
        }
-
-       security = iface->pipe->conn->security_state.generic_state;
-
        mem_ctx = talloc_new(NULL);
 
-       status = gensec_session_key(security, mem_ctx, &session_key);
+       status = dcerpc_binding_handle_auth_session_key(iface->binding_handle,
+                                                       mem_ctx,
+                                                       &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(mem_ctx);
                PyErr_SetNTSTATUS(status);