silverf0x / RpcView

RpcView is a free tool to explore and decompile Microsoft RPC interfaces
GNU General Public License v3.0
918 stars 250 forks source link

RpcDecompiler/InternalComplexTypesMisc.cpp processCorrelationDescriptorNaked, expression is always false #26

Closed hfiref0x closed 5 years ago

hfiref0x commented 5 years ago

There is a logical error in conditional statement in processCorrelationDescriptorNaked function.

The condition is an if(condition1) else if(condition2) else if(condition3).

It starts with https://github.com/silverf0x/RpcView/blob/c108da277be48accb3c6aaeb4af752a2028069bf/RpcDecompiler/InternalComplexTypesMisc.cpp#L511

next "else if" https://github.com/silverf0x/RpcView/blob/c108da277be48accb3c6aaeb4af752a2028069bf/RpcDecompiler/InternalComplexTypesMisc.cpp#L523

next "else if" https://github.com/silverf0x/RpcView/blob/c108da277be48accb3c6aaeb4af752a2028069bf/RpcDecompiler/InternalComplexTypesMisc.cpp#L549

The last one is always false and probably copy-paste misprint, judging from comment. Condition should be FC_TOP_LEVEL_MULTID_CONFORMANCE but not FC_POINTER_CONFORMANCE as it was checked before.