Commit 555cf382 authored by Robert Shearman's avatar Robert Shearman Committed by Alexandre Julliard

widl: Prevent NULL pointer de-refs on "void *" types.

parent d133ff9a
...@@ -783,16 +783,17 @@ static int encode_type( ...@@ -783,16 +783,17 @@ static int encode_type(
case VT_PTR: case VT_PTR:
{ {
int next_vt; int next_vt;
while((next_vt = get_type_vt(type->ref)) == 0) { for(next_vt = 0; type->ref; type = type->ref) {
if(type->ref == NULL) { next_vt = get_type_vt(type->ref);
next_vt = VT_VOID; if (next_vt != 0)
break; break;
}
type = type->ref;
} }
/* if no type found then it must be void */
if (next_vt == 0)
next_vt = VT_VOID;
encode_type(typelib, next_vt, type->ref, &target_type, NULL, NULL, &child_size); encode_type(typelib, next_vt, type->ref, &target_type, NULL, NULL, &child_size);
if(type->ref->type == RPC_FC_IP) { if(type->ref && (type->ref->type == RPC_FC_IP)) {
chat("encode_type: skipping ptr\n"); chat("encode_type: skipping ptr\n");
*encoded_type = target_type; *encoded_type = target_type;
*width = 4; *width = 4;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment