Message347024
> Say a library calls CreateEventW and gets handle 32. It passes this handle to some other library, which uses the event and closes the handle when it no longer needs it. But due to a miscommunication in the documentation, the first library thinks the handle remains open. Now handle 32 is free for reuse, but the library doesn't know this. subprocess.Popen subsequently calls CreateProcessW and gets handle 32. Later on, the library closes handle 32, making it invalid, at least until it gets assigned to some other kernel object.
So yeah, it's a severe bug in an application. An application should not close the wrong handle by mistake :-)
Thanks for the explanation. So it would be "nice" to backport the change to reduce the impact of such application bug, but it's not really a bug in Python itself. Python cannot fully protect developers for such class of bugs.
On Unix, there is a similar bug with applications trying to close a file descriptor which is already closed. It can lead to very severe bugs (crashes):
https://bugs.python.org/issue18748 |
|
Date |
User |
Action |
Args |
2019-07-01 14:44:50 | vstinner | set | recipients:
+ vstinner, gregory.p.smith, paul.moore, tim.golden, zach.ware, eryksun, steve.dower, efiop |
2019-07-01 14:44:50 | vstinner | set | messageid: <1561992290.47.0.829211027107.issue37380@roundup.psfhosted.org> |
2019-07-01 14:44:50 | vstinner | link | issue37380 messages |
2019-07-01 14:44:50 | vstinner | create | |
|