1
Description: Force use of NDR_NOALIGN, fixes support for non-small emails.
3
Bug-Debian: http://bugs.debian.org/692727
4
Status: submitted upstream
7
===================================================================
8
--- old/exchange.idl (revision 4004)
9
+++ new/exchange.idl (working copy)
11
[case(ActionType_OP_COPY)] MoveCopy_Action CopyAction;
12
[case(ActionType_OP_REPLY)] ReplyOOF_Action ReplyAction;
13
[case(ActionType_OP_OOF_REPLY)] ReplyOOF_Action ReplyOOFAction;
14
- [case(ActionType_OP_DEFER_ACTION)][flag(NDR_REMAINING)] DATA_BLOB DeferAction;
15
+ [case(ActionType_OP_DEFER_ACTION)][flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB DeferAction;
16
[case(ActionType_OP_BOUNCE)] BounceCode BounceCode;
17
[case(ActionType_OP_TAG)] mapi_SPropValue_wrap PropValue;
18
[case(ActionType_OP_FORWARD)] ForwardDelegate_Action ForwardAction;
21
typedef [flag(NDR_NOALIGN)] struct {
23
- [subcontext(0),subcontext_size(ActionLength),flag(NDR_REMAINING)] ActionBlockData ActionBlockData;
24
+ [subcontext(0),subcontext_size(ActionLength),flag(NDR_REMAINING|NDR_NOALIGN)] ActionBlockData ActionBlockData;
27
typedef [flag(NDR_NOALIGN)] struct {
30
typedef [public,flag(NDR_NOALIGN)] struct {
32
- [flag(NDR_REMAINING)]mapi_SPropValue lpProps[cValues];
33
+ [flag(NDR_REMAINING|NDR_NOALIGN)]mapi_SPropValue lpProps[cValues];
34
} mapi_SPropValue_array;
36
typedef [flag(NDR_NOALIGN)] struct {
38
// TODO: figure out if "layout" can go
40
// TODO: convert this to a proper structure - see if we already have one.
41
- [flag(NDR_REMAINING)] DATA_BLOB prop_values;
42
+ [flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB prop_values;
45
typedef [flag(NDR_NOALIGN)] struct {
48
typedef [flag(NDR_NOALIGN)] struct {
50
- [flag(NDR_REMAINING)] DATA_BLOB prop_data;
51
+ [flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB prop_data;
54
/*************************/
56
typedef [flag(NDR_NOALIGN)]struct {
58
ulRecipClass RecipClass;
59
- [subcontext(2),flag(NDR_REMAINING)] RecipientRow RecipientRow;
60
+ [subcontext(2),flag(NDR_REMAINING|NDR_NOALIGN)] RecipientRow RecipientRow;
63
typedef [flag(NDR_NOALIGN)] struct {
67
/* TEMP HACK for editing notes without crashing Outlook:
68
- [flag(NDR_REMAINING)] DATA_BLOB clientdata; */
69
+ [flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB clientdata; */
70
} SetMessageReadFlag_req;
72
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
74
typedef [nopush,nopull,flag(NDR_NOALIGN)] struct {
77
- [flag(NDR_REMAINING)]DATA_BLOB RowData;
78
+ [flag(NDR_REMAINING|NDR_NOALIGN)]DATA_BLOB RowData;
81
/**************************/
82
@@ -2394,13 +2394,13 @@
85
typedef [flag(NDR_NOALIGN)] struct {
86
- [subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data;
87
+ [subcontext(2), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB data;
90
/*************************/
91
/* EcDoRpc Function 0x2d */
92
typedef [flag(NDR_NOALIGN)] struct {
93
- [subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data;
94
+ [subcontext(2), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB data;
99
uint16 TotalStepCount;
101
uint16 TransferBufferSize;
102
- [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING)] DATA_BLOB TransferBuffer;
103
+ [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB TransferBuffer;
104
} FastTransferSourceGetBuffer_repl;
106
/**************************/
107
@@ -2982,7 +2982,7 @@
108
/* EcDoRpc Function 0x54 */
109
typedef [flag(NDR_NOALIGN)] struct {
110
uint16 TransferBufferSize;
111
- [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING)] DATA_BLOB TransferBuffer;
112
+ [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB TransferBuffer;
113
} FastTransferDestinationPutBuffer_req;
115
typedef [flag(NDR_NOALIGN)] struct {
116
@@ -3075,7 +3075,7 @@
117
typedef [flag(NDR_NOALIGN)] struct {
118
uint32 ExpandedRowCount;
120
- [flag(NDR_REMAINING)]DATA_BLOB RowData;
121
+ [flag(NDR_REMAINING|NDR_NOALIGN)]DATA_BLOB RowData;
124
/*************************/
125
@@ -3184,7 +3184,7 @@
126
typedef [flag(NDR_NOALIGN)] struct {
127
boolean8 HasFinished;
129
- [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING)] DATA_BLOB Data;
130
+ [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Data;
131
} ReadPerUserInformation_repl;
133
/*************************/
134
@@ -3194,7 +3194,7 @@
135
boolean8 HasFinished;
138
- [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING)] DATA_BLOB Data;
139
+ [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Data;
140
GUID ReplGuid; /* Note: ReplGuid gets only included under specific circumstances */
141
} WritePerUserInformation_req;
143
@@ -3364,7 +3364,7 @@
144
SendOptions SendOptions;
145
SynchronizationFlag SynchronizationFlag;
146
uint16 RestrictionSize;
147
- [subcontext(0),subcontext_size(RestrictionSize),flag(NDR_REMAINING)] DATA_BLOB RestrictionData;
148
+ [subcontext(0),subcontext_size(RestrictionSize),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB RestrictionData;
149
SynchronizationExtraFlags SynchronizationExtraFlags;
150
mapi_SPropTagArray PropertyTags;
152
@@ -3542,7 +3542,7 @@
155
typedef [flag(NDR_NOALIGN)] struct {
156
- [subcontext(2),flag(NDR_REMAINING)] DATA_BLOB MessageReadStates;
157
+ [subcontext(2),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB MessageReadStates;
158
} SyncImportReadStateChanges_req;
160
typedef [flag(NDR_NOALIGN)] struct {
161
@@ -3617,7 +3617,7 @@
162
/*************************/
163
/* EcDoRpc Function 0x90 */
164
typedef [flag(NDR_NOALIGN)] struct {
165
- [subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data;
166
+ [subcontext(2), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB data;
167
} WriteAndCommitStream_req;
170
@@ -4462,7 +4462,7 @@
174
- [subcontext(0), subcontext_size(132), flag(NDR_NOALIGN|NDR_REMAINING)] DATA_BLOB Reserved_1;
175
+ [subcontext(0), subcontext_size(132), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Reserved_1;
176
uint16 ServicePackMajor;
177
uint16 ServicePackMinor;
179
@@ -4567,7 +4567,7 @@
180
[out] uint16 rgwServerVersion[3],
181
[out] uint16 rgwBestVersion[3],
182
[in,out] uint32 *pulTimeStamp,
183
- [in,subcontext(4),flag(NDR_NOALIGN|NDR_REMAINING)] mapi2k7_AuxInfo *rgbAuxIn,
184
+ [in,subcontext(4),flag(NDR_REMAINING|NDR_NOALIGN)] mapi2k7_AuxInfo *rgbAuxIn,
186
[out, length_is(*pcbAuxOut), size_is(*pcbAuxOut)] mapi2k7_AuxInfo *rgbAuxOut,
187
[in,out][range(0,0x1008)] uint32 *pcbAuxOut
188
@@ -4588,7 +4588,7 @@
190
typedef [public,nopull] struct {
191
RPC_HEADER_EXT header;
192
- [subcontext(0),flag(NDR_NOALIGN|NDR_REMAINING)] mapi_response *mapi_response;
193
+ [subcontext(0),flag(NDR_REMAINING|NDR_NOALIGN)] mapi_response *mapi_response;
196
[public,noprint] MAPISTATUS EcDoRpcExt2(