From 29b91206a85878b43a31a7ab2dba7d62e33f7457 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Tue, 24 Jan 2012 17:44:56 +0800 Subject: [PATCH] server: Store correct protection for an image mapping. --- server/mapping.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/mapping.c b/server/mapping.c index f37016f1b44..90956e9d928 100644 --- a/server/mapping.c +++ b/server/mapping.c @@ -395,7 +395,7 @@ static int build_shared_mapping( struct mapping *mapping, int fd, } /* retrieve the mapping parameters for an executable (PE) image */ -static int get_image_params( struct mapping *mapping, int unix_fd ) +static int get_image_params( struct mapping *mapping, int unix_fd, int protect ) { IMAGE_DOS_HEADER dos; IMAGE_SECTION_HEADER *sec = NULL; @@ -453,7 +453,7 @@ static int get_image_params( struct mapping *mapping, int unix_fd ) if (mapping->shared_file) list_add_head( &shared_list, &mapping->shared_entry ); - mapping->protect = VPROT_IMAGE; + mapping->protect = protect; free( sec ); return 1; @@ -523,7 +523,7 @@ static struct object *create_mapping( struct directory *root, const struct unico if ((unix_fd = get_unix_fd( mapping->fd )) == -1) goto error; if (protect & VPROT_IMAGE) { - if (!get_image_params( mapping, unix_fd )) goto error; + if (!get_image_params( mapping, unix_fd, protect )) goto error; return &mapping->obj; } if (fstat( unix_fd, &st ) == -1)