<div dir="ltr">Hi Dave,<br><div>Thanks for pointing this out. I'm not aware of those variable and looks into the fill_caps path as I think most caller use this to determine its behavior.</div><div>Based on briefly examination, it seems those have_ variable is initialized in a similar way as fill_caps. I'm wondering why we did this in two different code path? Is there a specific reason for this?</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Jul 17, 2018 at 9:13 PM Dave Airlie <<a href="mailto:airlied@gmail.com">airlied@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 18 July 2018 at 13:40, Po-Hsien Wang <<a href="mailto:pwang@chromium.org" target="_blank">pwang@chromium.org</a>> wrote:<br>
> Dear all<br>
> I'm here to ask the correct way to do about the potential attack surface we<br>
> found during our recent fuzzing[1] experiment. During our experiment with<br>
> random input to submit_cmd call, we found it is easy to crash as, I believe,<br>
> virglrenderer assume all caller submit its cmd based on the caps advertised.<br>
> As fuzzing is designed to feed higly random/mutable data into the command,<br>
> we try to use it to find potential attack surface of the system. Thus,<br>
> problem raised if 'bad' caller can send arbitrary cmd to virglrender. In<br>
> this bug report[2], we found that the problem can be easily crashed by<br>
> feeding the crash file into the submit_cmd.<br>
<br>
We've started using the have_ to avoid gl calls when the caps aren't advertised.<br>
<br>
I suspect we need to fix up some of the older ones like the cond render one.<br>
<br>
Dave.<br>
<br>
><br>
> I'm wondering would the virglrenderer call fill_caps during init phase and<br>
> protect itself before each gl call work? That said, would moving the caps<br>
> check from caller to callee a valid way to solve the problem?<br>
><br>
> [1] libfuzz: <a href="https://llvm.org/docs/LibFuzzer.html" rel="noreferrer" target="_blank">https://llvm.org/docs/LibFuzzer.html</a><br>
> [2] <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=864689" rel="noreferrer" target="_blank">https://bugs.chromium.org/p/chromium/issues/detail?id=864689</a><br>
><br>
> _______________________________________________<br>
> virglrenderer-devel mailing list<br>
> <a href="mailto:virglrenderer-devel@lists.freedesktop.org" target="_blank">virglrenderer-devel@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/virglrenderer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/virglrenderer-devel</a><br>
><br>
</blockquote></div>