projects
/
reactos.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
95d303b
)
[NTOSKRNL] Use the security descriptor for all the symlinks
author
Pierre Schweitzer
<pierre@reactos.org>
Tue, 21 May 2019 17:27:32 +0000
(19:27 +0200)
committer
Pierre Schweitzer
<pierre@reactos.org>
Tue, 21 May 2019 17:28:17 +0000
(19:28 +0200)
ntoskrnl/ob/obname.c
patch
|
blob
|
history
diff --git
a/ntoskrnl/ob/obname.c
b/ntoskrnl/ob/obname.c
index
3a96787
..
f9ccb91
100644
(file)
--- a/
ntoskrnl/ob/obname.c
+++ b/
ntoskrnl/ob/obname.c
@@
-169,14
+169,13
@@
ObpCreateDosDevicesDirectory(VOID)
Status = NtCreateDirectoryObject(&Handle,
DIRECTORY_ALL_ACCESS,
&ObjectAttributes);
Status = NtCreateDirectoryObject(&Handle,
DIRECTORY_ALL_ACCESS,
&ObjectAttributes);
- RtlGetDaclSecurityDescriptor(&DosDevicesSD, &DaclPresent, &Dacl, &DaclDefaulted);
- ExFreePoolWithTag(Dacl, 'lcaD');
- if (!NT_SUCCESS(Status)) return Status;
+ if (!NT_SUCCESS(Status))
+ goto done;
/* Create the system device map */
Status = ObpCreateDeviceMap(Handle);
if (!NT_SUCCESS(Status))
/* Create the system device map */
Status = ObpCreateDeviceMap(Handle);
if (!NT_SUCCESS(Status))
-
return Status
;
+
goto done
;
/*********************************************\
|*** HACK until we support device mappings ***|
/*********************************************\
|*** HACK until we support device mappings ***|
@@
-187,7
+186,7
@@
ObpCreateDosDevicesDirectory(VOID)
&LinkName,
OBJ_PERMANENT,
NULL,
&LinkName,
OBJ_PERMANENT,
NULL,
-
NULL
);
+
&DosDevicesSD
);
Status = NtCreateSymbolicLinkObject(&SymHandle,
SYMBOLIC_LINK_ALL_ACCESS,
&ObjectAttributes,
Status = NtCreateSymbolicLinkObject(&SymHandle,
SYMBOLIC_LINK_ALL_ACCESS,
&ObjectAttributes,
@@
-208,7
+207,7
@@
ObpCreateDosDevicesDirectory(VOID)
&LinkName,
OBJ_PERMANENT,
Handle,
&LinkName,
OBJ_PERMANENT,
Handle,
-
NULL
);
+
&DosDevicesSD
);
Status = NtCreateSymbolicLinkObject(&SymHandle,
SYMBOLIC_LINK_ALL_ACCESS,
&ObjectAttributes,
Status = NtCreateSymbolicLinkObject(&SymHandle,
SYMBOLIC_LINK_ALL_ACCESS,
&ObjectAttributes,
@@
-226,7
+225,7
@@
ObpCreateDosDevicesDirectory(VOID)
&LinkName,
OBJ_PERMANENT,
Handle,
&LinkName,
OBJ_PERMANENT,
Handle,
-
NULL
);
+
&DosDevicesSD
);
Status = NtCreateSymbolicLinkObject(&SymHandle,
SYMBOLIC_LINK_ALL_ACCESS,
&ObjectAttributes,
Status = NtCreateSymbolicLinkObject(&SymHandle,
SYMBOLIC_LINK_ALL_ACCESS,
&ObjectAttributes,
@@
-235,7
+234,8
@@
ObpCreateDosDevicesDirectory(VOID)
/* Close the directory handle */
NtClose(Handle);
/* Close the directory handle */
NtClose(Handle);
- if (!NT_SUCCESS(Status)) return Status;
+ if (!NT_SUCCESS(Status))
+ goto done;
/*
* Initialize the \DosDevices symbolic link pointing to the global
/*
* Initialize the \DosDevices symbolic link pointing to the global
@@
-248,13
+248,17
@@
ObpCreateDosDevicesDirectory(VOID)
&LinkName,
OBJ_PERMANENT,
NULL,
&LinkName,
OBJ_PERMANENT,
NULL,
-
NULL
);
+
&DosDevicesSD
);
Status = NtCreateSymbolicLinkObject(&SymHandle,
SYMBOLIC_LINK_ALL_ACCESS,
&ObjectAttributes,
&RootName);
if (NT_SUCCESS(Status)) NtClose(SymHandle);
Status = NtCreateSymbolicLinkObject(&SymHandle,
SYMBOLIC_LINK_ALL_ACCESS,
&ObjectAttributes,
&RootName);
if (NT_SUCCESS(Status)) NtClose(SymHandle);
+done:
+ RtlGetDaclSecurityDescriptor(&DosDevicesSD, &DaclPresent, &Dacl, &DaclDefaulted);
+ ExFreePoolWithTag(Dacl, 'lcaD');
+
/* Return status */
return Status;
}
/* Return status */
return Status;
}