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
26c2953e
Commit
26c2953e
authored
Jun 16, 2006
by
Huw Davies
Committed by
Alexandre Julliard
Jun 16, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rpcrt4: Fix the argument size of conformant arrays.
parent
07edeb83
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
2 deletions
+27
-2
ndr_stubless.c
dlls/rpcrt4/ndr_stubless.c
+27
-2
No files found.
dlls/rpcrt4/ndr_stubless.c
View file @
26c2953e
...
@@ -1014,6 +1014,26 @@ LONG_PTR __cdecl call_server_func(SERVER_ROUTINE func, unsigned char * args, uns
...
@@ -1014,6 +1014,26 @@ LONG_PTR __cdecl call_server_func(SERVER_ROUTINE func, unsigned char * args, uns
}
}
#endif
#endif
static
DWORD
calc_arg_size
(
MIDL_STUB_MESSAGE
*
pStubMsg
,
PFORMAT_STRING
pFormat
)
{
DWORD
size
;
switch
(
*
pFormat
)
{
case
RPC_FC_CARRAY
:
size
=
*
(
const
WORD
*
)(
pFormat
+
2
);
ComputeConformance
(
pStubMsg
,
NULL
,
pFormat
+
4
,
0
);
size
*=
pStubMsg
->
MaxCount
;
break
;
default:
FIXME
(
"Unhandled type %02x
\n
"
,
*
pFormat
);
/* fallthrough */
case
RPC_FC_RP
:
size
=
sizeof
(
void
*
);
break
;
}
return
size
;
}
/* FIXME: need to free some stuff in here too */
/* FIXME: need to free some stuff in here too */
long
WINAPI
NdrStubCall2
(
long
WINAPI
NdrStubCall2
(
struct
IRpcStubBuffer
*
pThis
,
struct
IRpcStubBuffer
*
pThis
,
...
@@ -1367,8 +1387,13 @@ long WINAPI NdrStubCall2(
...
@@ -1367,8 +1387,13 @@ long WINAPI NdrStubCall2(
else
if
(
pParam
->
param_attributes
.
IsOut
&&
else
if
(
pParam
->
param_attributes
.
IsOut
&&
!
pParam
->
param_attributes
.
IsByValue
)
!
pParam
->
param_attributes
.
IsByValue
)
{
{
*
(
void
**
)
pArg
=
NdrAllocate
(
&
stubMsg
,
sizeof
(
void
*
));
DWORD
size
=
calc_arg_size
(
&
stubMsg
,
pTypeFormat
);
**
(
void
***
)
pArg
=
0
;
if
(
size
)
{
*
(
void
**
)
pArg
=
NdrAllocate
(
&
stubMsg
,
size
);
memset
(
*
(
void
**
)
pArg
,
0
,
size
);
}
}
}
break
;
break
;
case
STUBLESS_CALCSIZE
:
case
STUBLESS_CALCSIZE
:
...
...
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