Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
92db6d2c
Commit
92db6d2c
authored
Nov 05, 2007
by
Rob Shearman
Committed by
Alexandre Julliard
Nov 06, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
server: Don't do access checks on the security descriptors of newly created objects.
parent
a1b02c2c
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
19 additions
and
6 deletions
+19
-6
sync.c
dlls/kernel32/tests/sync.c
+0
-1
event.c
server/event.c
+4
-1
handle.c
server/handle.c
+1
-1
handle.h
server/handle.h
+2
-0
mapping.c
server/mapping.c
+4
-1
mutex.c
server/mutex.c
+4
-1
semaphore.c
server/semaphore.c
+4
-1
No files found.
dlls/kernel32/tests/sync.c
View file @
92db6d2c
...
...
@@ -278,7 +278,6 @@ static void test_event_security(void)
InitializeAcl
(
&
acl
,
sizeof
(
acl
),
ACL_REVISION
);
SetSecurityDescriptorDacl
(
&
sd
,
TRUE
,
&
acl
,
FALSE
);
handle
=
CreateEventA
(
&
sa
,
FALSE
,
FALSE
,
__FILE__
": Test Event"
);
todo_wine
ok
(
handle
!=
NULL
,
"CreateEventW with blank sd failed with error %d
\n
"
,
GetLastError
());
CloseHandle
(
handle
);
}
...
...
server/event.c
View file @
92db6d2c
...
...
@@ -187,7 +187,10 @@ DECL_HANDLER(create_event)
if
((
event
=
create_event
(
root
,
&
name
,
req
->
attributes
,
req
->
manual_reset
,
req
->
initial_state
,
sd
)))
{
reply
->
handle
=
alloc_handle
(
current
->
process
,
event
,
req
->
access
,
req
->
attributes
);
if
(
get_error
()
==
STATUS_OBJECT_NAME_EXISTS
)
reply
->
handle
=
alloc_handle
(
current
->
process
,
event
,
req
->
access
,
req
->
attributes
);
else
reply
->
handle
=
alloc_handle_no_access_check
(
current
->
process
,
event
,
req
->
access
,
req
->
attributes
);
release_object
(
event
);
}
...
...
server/handle.c
View file @
92db6d2c
...
...
@@ -226,7 +226,7 @@ static obj_handle_t alloc_entry( struct handle_table *table, void *obj, unsigned
/* allocate a handle for an object, incrementing its refcount */
/* return the handle, or 0 on error */
static
obj_handle_t
alloc_handle_no_access_check
(
struct
process
*
process
,
void
*
ptr
,
unsigned
int
access
,
unsigned
int
attr
)
obj_handle_t
alloc_handle_no_access_check
(
struct
process
*
process
,
void
*
ptr
,
unsigned
int
access
,
unsigned
int
attr
)
{
struct
object
*
obj
=
ptr
;
...
...
server/handle.h
View file @
92db6d2c
...
...
@@ -36,6 +36,8 @@ struct unicode_str;
/* that the thing pointed to starts with a struct object... */
extern
obj_handle_t
alloc_handle
(
struct
process
*
process
,
void
*
obj
,
unsigned
int
access
,
unsigned
int
attr
);
extern
obj_handle_t
alloc_handle_no_access_check
(
struct
process
*
process
,
void
*
ptr
,
unsigned
int
access
,
unsigned
int
attr
);
extern
int
close_handle
(
struct
process
*
process
,
obj_handle_t
handle
);
extern
struct
object
*
get_handle_obj
(
struct
process
*
process
,
obj_handle_t
handle
,
unsigned
int
access
,
const
struct
object_ops
*
ops
);
...
...
server/mapping.c
View file @
92db6d2c
...
...
@@ -415,7 +415,10 @@ DECL_HANDLER(create_mapping)
if
((
obj
=
create_mapping
(
root
,
&
name
,
req
->
attributes
,
req
->
size
,
req
->
protect
,
req
->
file_handle
,
sd
)))
{
reply
->
handle
=
alloc_handle
(
current
->
process
,
obj
,
req
->
access
,
req
->
attributes
);
if
(
get_error
()
==
STATUS_OBJECT_NAME_EXISTS
)
reply
->
handle
=
alloc_handle
(
current
->
process
,
obj
,
req
->
access
,
req
->
attributes
);
else
reply
->
handle
=
alloc_handle_no_access_check
(
current
->
process
,
obj
,
req
->
access
,
req
->
attributes
);
release_object
(
obj
);
}
...
...
server/mutex.c
View file @
92db6d2c
...
...
@@ -212,7 +212,10 @@ DECL_HANDLER(create_mutex)
if
((
mutex
=
create_mutex
(
root
,
&
name
,
req
->
attributes
,
req
->
owned
,
sd
)))
{
reply
->
handle
=
alloc_handle
(
current
->
process
,
mutex
,
req
->
access
,
req
->
attributes
);
if
(
get_error
()
==
STATUS_OBJECT_NAME_EXISTS
)
reply
->
handle
=
alloc_handle
(
current
->
process
,
mutex
,
req
->
access
,
req
->
attributes
);
else
reply
->
handle
=
alloc_handle_no_access_check
(
current
->
process
,
mutex
,
req
->
access
,
req
->
attributes
);
release_object
(
mutex
);
}
...
...
server/semaphore.c
View file @
92db6d2c
...
...
@@ -187,7 +187,10 @@ DECL_HANDLER(create_semaphore)
if
((
sem
=
create_semaphore
(
root
,
&
name
,
req
->
attributes
,
req
->
initial
,
req
->
max
,
sd
)))
{
reply
->
handle
=
alloc_handle
(
current
->
process
,
sem
,
req
->
access
,
req
->
attributes
);
if
(
get_error
()
==
STATUS_OBJECT_NAME_EXISTS
)
reply
->
handle
=
alloc_handle
(
current
->
process
,
sem
,
req
->
access
,
req
->
attributes
);
else
reply
->
handle
=
alloc_handle_no_access_check
(
current
->
process
,
sem
,
req
->
access
,
req
->
attributes
);
release_object
(
sem
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment