[issue20274] sqlite module has bad argument parsing code, including undefined behavior in C

Larry Hastings report at bugs.python.org
Thu Jan 16 01:06:57 CET 2014


Larry Hastings added the comment:

You're right, deprecation sounds best.  If Georg or Benjamin want the fix in earlier releases I'll split the pysqlite_connection_call into another issue, otherwise I won't bother.

As for fixing the undefined behavior in older versions: since its behavior is undefined, yes, it *could* cause a crash.  But by that token it *could* teleport you to Mars and give you a funny-looking nose.  In practice it *should* be utterly harmless, as I believe every platform supported by Python 3.4 uses the caller-pops-stack calling convention.  And we've lived with it for this long, so it doesn't seem to be hurting anything.  But like all undefined behavior I can make no guarantee.

MvL in particular comes down like a ton of bricks whenever someone proposes checking in code that's technically undefined behavior.  I've had the relevant chapter and verse of the C standard quoted at me for this exact thing (calling a function pointer using a sliiiightly different signature than the actual function).

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue20274>
_______________________________________


More information about the Python-bugs-list mailing list