server: Add get_sd and set_sd object operations to allow the security descriptor to be stored somewhere other than server memory, such as on disk.
diff --git a/server/handle.c b/server/handle.c
index 65b4205..763870e 100644
--- a/server/handle.c
+++ b/server/handle.c
@@ -111,6 +111,8 @@
no_signal, /* signal */
no_get_fd, /* get_fd */
no_map_access, /* map_access */
+ default_get_sd, /* get_sd */
+ default_set_sd, /* set_sd */
no_lookup_name, /* lookup_name */
no_open_file, /* open_file */
no_close_handle, /* close_handle */
@@ -612,7 +614,7 @@
if (!(obj = get_handle_obj( current->process, req->handle, access, NULL ))) return;
- set_object_sd( obj, sd, req->security_info );
+ obj->ops->set_sd( obj, sd, req->security_info );
release_object( obj );
}
@@ -631,7 +633,7 @@
if (!(obj = get_handle_obj( current->process, req->handle, access, NULL ))) return;
- sd = obj->sd;
+ sd = obj->ops->get_sd( obj );
if (sd)
{
req_sd.control = sd->control & ~SE_SELF_RELATIVE;