<div dir="ltr">Sounds good to me.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 22, 2017 at 11:17 AM, Steve Dower <span dir="ltr"><<a href="mailto:steve.dower@python.org" target="_blank">steve.dower@python.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">One of the main reasons we are stuck with an old libffi fork in CPython is because the newer versions do not support protection from calling functions with too few/many arguments:<br>
<br>
<a href="https://docs.python.org/3/library/ctypes.html?highlight=ctypes#calling-functions" rel="noreferrer" target="_blank">https://docs.python.org/3/libr<wbr>ary/ctypes.html?highlight=ctyp<wbr>es#calling-functions</a><br>
<br>
There are a number of caveats here, including "this only works on Windows", but since it is documented we cannot just remove the behaviour without a deprecation period.<br>
<br>
I'd like to propose a highly-accelerated deprecation period for this specific feature, starting in CPython 3.6.2 and being "completed" in 3.7.0, when we will hopefully move onto a newer libffi.<br>
<br>
In general, the "feature" is a misfeature anyway, since calling a native function with incorrect arguments is unsupported and a very easy way to cause information leakage or code execution vulnerabilities. There may be an argument for removing the functionality immediately, but honestly I think changing libffi in a point release is higher risk.<br>
<br>
Once the special protection is removed, most of these cases will become OSError due to the general protection against segmentation faults. Some will undoubtedly fall through the cracks and crash the entire interpreter, but these are unavoidable (and really ought to crash to avoid potential exploits).<br>
<br>
Does anyone have any reasons to oppose this? It already has votes from another Windows expert and the 3.6/3.7 Release Manager, but we wanted to see if anyone has a concern we haven't thought of.<br>
<br>
Cheers,<br>
Steve<br>
______________________________<wbr>_________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org" target="_blank">Python-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-dev" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/python-dev</a><br>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/guido%40python.org" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/options/python-dev/guido%<wbr>40python.org</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)</div>
</div>