You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Added patch to fix memory corruption wineserver (token_duplicate should not reference the original token).
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
From 852441b8d71ffc4fe095a331cd8a7dcc2fdac1c2 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 10 Dec 2015 16:40:01 +0100
|
||||
Subject: server: token_duplicate should not reference the original token,
|
||||
which will get destroyed on process exit.
|
||||
|
||||
---
|
||||
server/token.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/server/token.c b/server/token.c
|
||||
index 001261d..9edfbf0 100644
|
||||
--- a/server/token.c
|
||||
+++ b/server/token.c
|
||||
@@ -568,6 +568,7 @@ struct token *token_duplicate( struct token *src_token, unsigned primary,
|
||||
if (!token) return token;
|
||||
|
||||
/* copy groups */
|
||||
+ token->primary_group = NULL;
|
||||
LIST_FOR_EACH_ENTRY( group, &src_token->groups, struct group, entry )
|
||||
{
|
||||
size_t size = FIELD_OFFSET( struct group, sid.SubAuthority[group->sid.SubAuthorityCount] );
|
||||
@@ -579,8 +580,9 @@ struct token *token_duplicate( struct token *src_token, unsigned primary,
|
||||
}
|
||||
memcpy( newgroup, group, size );
|
||||
list_add_tail( &token->groups, &newgroup->entry );
|
||||
+ if (src_token->primary_group == &group->sid)
|
||||
+ token->primary_group = &newgroup->sid;
|
||||
}
|
||||
- token->primary_group = src_token->primary_group;
|
||||
assert( token->primary_group );
|
||||
|
||||
/* copy privileges */
|
||||
--
|
||||
2.6.2
|
||||
|
Reference in New Issue
Block a user