[1/3] user32: Only call GlobalUnlock when GlobalLock was successful.

Sebastian Lackner sebastian at fds-team.de
Wed Sep 7 13:51:49 CDT 2016


Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
---

I don't think its well-defined to call GlobalUnlock when the previous GlobalLock failed.

 dlls/user32/clipboard.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/dlls/user32/clipboard.c b/dlls/user32/clipboard.c
index 72f7334..f6f073e 100644
--- a/dlls/user32/clipboard.c
+++ b/dlls/user32/clipboard.c
@@ -89,8 +89,11 @@ static LCID get_clipboard_locale(void)
     if ((data = GetClipboardData( CF_LOCALE )))
     {
         LCID *ptr = GlobalLock( data );
-        if (ptr && GlobalSize( data ) >= sizeof(*ptr)) lcid = *ptr;
-        GlobalUnlock( data );
+        if (ptr)
+        {
+            if (GlobalSize( data ) >= sizeof(*ptr)) lcid = *ptr;
+            GlobalUnlock( data );
+        }
     }
     return lcid;
 }
-- 
2.9.0



More information about the wine-patches mailing list