diff options
Diffstat (limited to 'pcr/openchange/bugzilla_682449.patch')
-rw-r--r-- | pcr/openchange/bugzilla_682449.patch | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/pcr/openchange/bugzilla_682449.patch b/pcr/openchange/bugzilla_682449.patch new file mode 100644 index 000000000..e1b3f0983 --- /dev/null +++ b/pcr/openchange/bugzilla_682449.patch @@ -0,0 +1,191 @@ +Index: exchange.idl +=================================================================== +--- exchange.idl (revision 4004) ++++ exchange.idl (working copy) +@@ -1039,7 +1039,7 @@ + [case(ActionType_OP_COPY)] MoveCopy_Action CopyAction; + [case(ActionType_OP_REPLY)] ReplyOOF_Action ReplyAction; + [case(ActionType_OP_OOF_REPLY)] ReplyOOF_Action ReplyOOFAction; +- [case(ActionType_OP_DEFER_ACTION)][flag(NDR_REMAINING)] DATA_BLOB DeferAction; ++ [case(ActionType_OP_DEFER_ACTION)][flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB DeferAction; + [case(ActionType_OP_BOUNCE)] BounceCode BounceCode; + [case(ActionType_OP_TAG)] mapi_SPropValue_wrap PropValue; + [case(ActionType_OP_FORWARD)] ForwardDelegate_Action ForwardAction; +@@ -1057,7 +1057,7 @@ + + typedef [flag(NDR_NOALIGN)] struct { + uint16 ActionLength; +- [subcontext(0),subcontext_size(ActionLength),flag(NDR_REMAINING)] ActionBlockData ActionBlockData; ++ [subcontext(0),subcontext_size(ActionLength),flag(NDR_REMAINING|NDR_NOALIGN)] ActionBlockData ActionBlockData; + } ActionBlock; + + typedef [flag(NDR_NOALIGN)] struct { +@@ -1095,7 +1095,7 @@ + + typedef [public,flag(NDR_NOALIGN)] struct { + uint16 cValues; +- [flag(NDR_REMAINING)]mapi_SPropValue lpProps[cValues]; ++ [flag(NDR_REMAINING|NDR_NOALIGN)]mapi_SPropValue lpProps[cValues]; + } mapi_SPropValue_array; + + typedef [flag(NDR_NOALIGN)] struct { +@@ -1281,7 +1281,7 @@ + // TODO: figure out if "layout" can go + uint8 layout; + // TODO: convert this to a proper structure - see if we already have one. +- [flag(NDR_REMAINING)] DATA_BLOB prop_values; ++ [flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB prop_values; + } RecipientRow; + + typedef [flag(NDR_NOALIGN)] struct { +@@ -1356,7 +1356,7 @@ + + typedef [flag(NDR_NOALIGN)] struct { + uint8 layout; +- [flag(NDR_REMAINING)] DATA_BLOB prop_data; ++ [flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB prop_data; + } GetProps_repl; + + /*************************/ +@@ -1455,7 +1455,7 @@ + typedef [flag(NDR_NOALIGN)]struct { + uint32 idx; + ulRecipClass RecipClass; +- [subcontext(2),flag(NDR_REMAINING)] RecipientRow RecipientRow; ++ [subcontext(2),flag(NDR_REMAINING|NDR_NOALIGN)] RecipientRow RecipientRow; + } ModifyRecipientRow; + + typedef [flag(NDR_NOALIGN)] struct { +@@ -1532,7 +1532,7 @@ + uint8 handle_idx; + MSGFLAG_READ flags; + /* TEMP HACK for editing notes without crashing Outlook: +- [flag(NDR_REMAINING)] DATA_BLOB clientdata; */ ++ [flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB clientdata; */ + } SetMessageReadFlag_req; + + typedef [nodiscriminant, flag(NDR_NOALIGN)] union { +@@ -1782,7 +1782,7 @@ + typedef [nopush,nopull,flag(NDR_NOALIGN)] struct { + uint8 Origin; + uint16 RowCount; +- [flag(NDR_REMAINING)]DATA_BLOB RowData; ++ [flag(NDR_REMAINING|NDR_NOALIGN)]DATA_BLOB RowData; + } QueryRows_repl; + + /**************************/ +@@ -2394,13 +2394,13 @@ + } ReadStream_req; + + typedef [flag(NDR_NOALIGN)] struct { +- [subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data; ++ [subcontext(2), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB data; + } ReadStream_repl; + + /*************************/ + /* EcDoRpc Function 0x2d */ + typedef [flag(NDR_NOALIGN)] struct { +- [subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data; ++ [subcontext(2), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB data; + } WriteStream_req; + + +@@ -2900,7 +2900,7 @@ + uint16 TotalStepCount; + uint8 Reserved; + uint16 TransferBufferSize; +- [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING)] DATA_BLOB TransferBuffer; ++ [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB TransferBuffer; + } FastTransferSourceGetBuffer_repl; + + /**************************/ +@@ -2982,7 +2982,7 @@ + /* EcDoRpc Function 0x54 */ + typedef [flag(NDR_NOALIGN)] struct { + uint16 TransferBufferSize; +- [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING)] DATA_BLOB TransferBuffer; ++ [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB TransferBuffer; + } FastTransferDestinationPutBuffer_req; + + typedef [flag(NDR_NOALIGN)] struct { +@@ -3075,7 +3075,7 @@ + typedef [flag(NDR_NOALIGN)] struct { + uint32 ExpandedRowCount; + uint16 RowCount; +- [flag(NDR_REMAINING)]DATA_BLOB RowData; ++ [flag(NDR_REMAINING|NDR_NOALIGN)]DATA_BLOB RowData; + } ExpandRow_repl; + + /*************************/ +@@ -3184,7 +3184,7 @@ + typedef [flag(NDR_NOALIGN)] struct { + boolean8 HasFinished; + uint16 DataSize; +- [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING)] DATA_BLOB Data; ++ [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Data; + } ReadPerUserInformation_repl; + + /*************************/ +@@ -3194,7 +3194,7 @@ + boolean8 HasFinished; + uint32 DataOffset; + uint16 DataSize; +- [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING)] DATA_BLOB Data; ++ [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Data; + GUID ReplGuid; /* Note: ReplGuid gets only included under specific circumstances */ + } WritePerUserInformation_req; + +@@ -3364,7 +3364,7 @@ + SendOptions SendOptions; + SynchronizationFlag SynchronizationFlag; + uint16 RestrictionSize; +- [subcontext(0),subcontext_size(RestrictionSize),flag(NDR_REMAINING)] DATA_BLOB RestrictionData; ++ [subcontext(0),subcontext_size(RestrictionSize),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB RestrictionData; + SynchronizationExtraFlags SynchronizationExtraFlags; + mapi_SPropTagArray PropertyTags; + } SyncConfigure_req; +@@ -3542,7 +3542,7 @@ + } MessageReadState; + + typedef [flag(NDR_NOALIGN)] struct { +- [subcontext(2),flag(NDR_REMAINING)] DATA_BLOB MessageReadStates; ++ [subcontext(2),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB MessageReadStates; + } SyncImportReadStateChanges_req; + + typedef [flag(NDR_NOALIGN)] struct { +@@ -3617,7 +3617,7 @@ + /*************************/ + /* EcDoRpc Function 0x90 */ + typedef [flag(NDR_NOALIGN)] struct { +- [subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data; ++ [subcontext(2), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB data; + } WriteAndCommitStream_req; + + +@@ -4462,7 +4462,7 @@ + uint32 MajorVersion; + uint32 MinorVersion; + uint32 BuildNumber; +- [subcontext(0), subcontext_size(132), flag(NDR_NOALIGN|NDR_REMAINING)] DATA_BLOB Reserved_1; ++ [subcontext(0), subcontext_size(132), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Reserved_1; + uint16 ServicePackMajor; + uint16 ServicePackMinor; + uint32 Reserved_2; +@@ -4567,7 +4567,7 @@ + [out] uint16 rgwServerVersion[3], + [out] uint16 rgwBestVersion[3], + [in,out] uint32 *pulTimeStamp, +- [in,subcontext(4),flag(NDR_NOALIGN|NDR_REMAINING)] mapi2k7_AuxInfo *rgbAuxIn, ++ [in,subcontext(4),flag(NDR_REMAINING|NDR_NOALIGN)] mapi2k7_AuxInfo *rgbAuxIn, + [in] uint32 cbAuxIn, + [out, length_is(*pcbAuxOut), size_is(*pcbAuxOut)] mapi2k7_AuxInfo *rgbAuxOut, + [in,out][range(0,0x1008)] uint32 *pcbAuxOut +@@ -4588,7 +4588,7 @@ + + typedef [public,nopull] struct { + RPC_HEADER_EXT header; +- [subcontext(0),flag(NDR_NOALIGN|NDR_REMAINING)] mapi_response *mapi_response; ++ [subcontext(0),flag(NDR_REMAINING|NDR_NOALIGN)] mapi_response *mapi_response; + } mapi2k7_response; + + [public,noprint] MAPISTATUS EcDoRpcExt2( |