<br><br>On Sunday, June 19, 2016, Henri Verbeet <<a href="mailto:hverbeet@gmail.com">hverbeet@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 19 June 2016 at 00:29, Aaryaman Vasishta <<a href="javascript:;" onclick="_e(event, 'cvml', 'jem456.vasishta@gmail.com')">jem456.vasishta@gmail.com</a>> wrote:<br>
> +static HRESULT WINAPI d3drm_frame1_AddChild(IDirect3DRMFrame *iface, IDirect3DRMFrame *child)<br>
> +{<br>
> +    struct d3drm_frame *frame = impl_from_IDirect3DRMFrame(iface);<br>
> +    struct d3drm_frame *child_frame = unsafe_impl_from_IDirect3DRMFrame(child);<br>
> +<br>
> +    TRACE("iface %p, child %p.\n", iface, child);<br>
> +<br>
> +    if (!child_frame)<br>
> +        return D3DRMERR_BADOBJECT;<br>
That's redundant, d3drm_frame3_AddChild() already takes care of that.<br>
<br>
<br>
</blockquote><div>But child_frame is dereferenced while calling d3drm_frame3_AddChild, so it crashes the test which passes child as NULL. The NULL check for child is made in unsafe_impl_from_...</div>Do correct me if I may have missed something though.<br><div><br></div><div>Cheers,</div><div>Aaryaman</div>