http://bugs.winehq.org/show_bug.cgi?id=16363
--- Comment #9 from Jeremy Jackins jeremyjackins@gmail.com 2009-01-10 21:36:20 --- yep, I'm sure. it stops working for me exactly at that revision. I've also narrowed it down a bit more, by reverting each of the modified files from the broken revision to their state at the working revision, and the problem seems to occur due to some small changes in server/trace.c, server/protocol.def, and server/mapping.c.
It seems to have something to do with these "fixed access checks"
diffs:
diff --git a/server/mapping.c b/server/mapping.c index 34fc6ce..f5df22f 100644 --- a/server/mapping.c +++ b/server/mapping.c @@ -562,7 +562,7 @@ DECL_HANDLER(get_mapping_info) struct fd *fd;
if ((mapping = (struct mapping *)get_handle_obj( current->process, req->han - 0, &mapping_ops ))) + req->access | SECTION_QUER { reply->size = mapping->size; reply->protect = mapping->protect;
---------------------
diff --git a/server/protocol.def b/server/protocol.def index 0969330..bb7b47c 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -1351,6 +1351,7 @@ enum char_info_mode /* Get information about a file mapping */ @REQ(get_mapping_info) obj_handle_t handle; /* handle to the mapping */ + unsigned int access; /* wanted access rights */ @REPLY file_pos_t size; /* mapping size */ int protect; /* protection flags */
---------------------
diff --git a/server/trace.c b/server/trace.c index 38cabcb..8b6e622 100644 --- a/server/trace.c +++ b/server/trace.c @@ -1769,7 +1769,8 @@ static void dump_open_mapping_reply( const struct open_map
static void dump_get_mapping_info_request( const struct get_mapping_info_reques { - fprintf( stderr, " handle=%p", req->handle ); + fprintf( stderr, " handle=%p,", req->handle ); + fprintf( stderr, " access=%08x", req->access ); }
static void dump_get_mapping_info_reply( const struct get_mapping_info_reply *r