Added patches for two error handling issues in wineserver detected by Coverity.

This commit is contained in:
Sebastian Lackner 2016-01-23 20:24:39 +01:00
parent e6cdf018d3
commit 858822cf40
3 changed files with 70 additions and 0 deletions

View File

@ -251,6 +251,7 @@ patch_enable_all ()
enable_rpcrt4_RpcBindingServerFromClient="$1"
enable_secur32_ANSI_NTLM_Credentials="$1"
enable_server_ClipCursor="$1"
enable_server_Coverity="$1"
enable_server_CreateProcess_ACLs="$1"
enable_server_Desktop_Refcount="$1"
enable_server_FileEndOfFileInformation="$1"
@ -892,6 +893,9 @@ patch_enable ()
server-ClipCursor)
enable_server_ClipCursor="$2"
;;
server-Coverity)
enable_server_Coverity="$2"
;;
server-CreateProcess_ACLs)
enable_server_CreateProcess_ACLs="$2"
;;
@ -5341,6 +5345,20 @@ if test "$enable_server_ClipCursor" -eq 1; then
) >> "$patchlist"
fi
# Patchset server-Coverity
# |
# | Modified files:
# | * server/directory.c, server/registry.c
# |
if test "$enable_server_Coverity" -eq 1; then
patch_apply server-Coverity/0001-server-Add-missing-check-for-objattr-variable-in-loa.patch
patch_apply server-Coverity/0002-server-Avoid-invalid-memory-access-if-creation-of-na.patch
(
echo '+ { "Sebastian Lackner", "server: Add missing check for objattr variable in load_registry wineserver call (Coverity).", 1 },';
echo '+ { "Sebastian Lackner", "server: Avoid invalid memory access if creation of namespace fails in create_directory (Coverity).", 1 },';
) >> "$patchlist"
fi
# Patchset server-FileEndOfFileInformation
# |
# | Modified files:

View File

@ -0,0 +1,26 @@
From b2fec3a86116deb45df5c8f3f6ac07434d3d34a7 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 23 Jan 2016 20:23:04 +0100
Subject: server: Add missing check for objattr variable in load_registry
wineserver call (Coverity).
---
server/registry.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/server/registry.c b/server/registry.c
index 5723824..a35765c 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -2187,6 +2187,8 @@ DECL_HANDLER(load_registry)
const struct security_descriptor *sd;
const struct object_attributes *objattr = get_req_object_attributes( &sd, &name );
+ if (!objattr) return;
+
if (!thread_single_check_privilege( current, &SeRestorePrivilege ))
{
set_error( STATUS_PRIVILEGE_NOT_HELD );
--
2.6.4

View File

@ -0,0 +1,26 @@
From 4e690407c338be1553e6c2c18977364152477339 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 23 Jan 2016 20:23:48 +0100
Subject: server: Avoid invalid memory access if creation of namespace fails in
create_directory (Coverity).
---
server/directory.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/directory.c b/server/directory.c
index de049ef..937ab89 100644
--- a/server/directory.c
+++ b/server/directory.c
@@ -192,7 +192,7 @@ static struct directory *create_directory( struct directory *root, const struct
if (!(dir->entries = create_namespace( hash_size )))
{
release_object( dir );
- dir = NULL;
+ return NULL;
}
if (sd) default_set_sd( &dir->obj, sd, OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION |
DACL_SECURITY_INFORMATION | SACL_SECURITY_INFORMATION );
--
2.6.4