[pywin32-bugs] [ pywin32-Patches-2141368 ] win32event.MsgWaitForMultipleObjectsEx() segfaults
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: SourceForge.net <no...@so...> - 2008-10-02 00:49:13
|
Patches item #2141368, was opened at 2008-10-02 01:51 Message generated for change (Comment added) made by zseil You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=551956&aid=2141368&group_id=78018 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Ziga Seilnacht (zseil) Assigned to: Nobody/Anonymous (nobody) Summary: win32event.MsgWaitForMultipleObjectsEx() segfaults Initial Comment: win32event.MsgWaitForMultipleObjectsEx() segfaults if you call it with an empty list of handles (I didn't try calling with non-empty list). The docs say that this should be possible, see: http://blogs.msdn.com/oldnewthing/archive/2006/01/25/517395.aspx (OK, it's not exactly documentation :) The problem lies in dynamic loading of said function. Since the win32event module already requires Windows XP, (#define _WIN32_WINNT 0x0501), and this function was added in Windows NT 4.0, I simply removed the dynamic loading. The patch also contains a very basic test. ---------------------------------------------------------------------- >Comment By: Ziga Seilnacht (zseil) Date: 2008-10-02 02:49 Message: Of course, I forgot to update the test in the second version of the patch... Here is the third, and hopefully last version. File Added: MsgWaitForMultipleObjectsEx3.diff ---------------------------------------------------------------------- Comment By: Ziga Seilnacht (zseil) Date: 2008-10-02 02:31 Message: Ok, the old version segfaults even if you have nonempty list: >>> import win32event >>> event = win32event.CreateEvent(None, 0, 0, None) >>> res = win32event.MsgWaitForMultipleObjectsEx([event], 0, 0, 0, 0) -> segfault This is on Windows XP SP3. Since it looks that this function was never usable, I attach a new patch that also changes its interface. The native MsgWaitForMultipleObjectsEx() function doesn't have a fWaitAll parameter, but the Python wrapper did have it and never did anything with it. So this updated patch simply removes it. File Added: MsgWaitForMultipleObjectsEx2.diff ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=551956&aid=2141368&group_id=78018 |