Usermode/libaxwin4 - Handle demarshal failure
[tpg/acess2.git] / Usermode / Libraries / libaxwin4.so_src / wm.cpp
index ee1895e..3672078 100644 (file)
@@ -118,13 +118,19 @@ extern "C" void *AxWin4_GetWindowBuffer(tAxWin4_Window *Window)
                req.WriteU16(Window->m_id);
                
                CDeserialiser   response = GetSyncReply(req, IPCMSG_GETWINBUF);
-               if( response.ReadU16() != Window->m_id )
+               unsigned int rspwin = response.ReadU16();
+               if( rspwin != Window->m_id )
                {
-                       
+                       _SysDebug("AxWin4_GetWindowBuffer: GETWINBUF reply for different window (%u != %u)", rspwin, Window->m_id);
+                       return NULL;
                }
                
                uint64_t handle = response.ReadU64();
                Window->m_fd = _SysUnMarshalFD(handle);
+               if( Window->m_fd == -1 ) {
+                       _SysDebug("AxWin4_GetWindowBuffer: Unable to unmarshal resultant FD (0x%llx)", handle);
+                       return NULL;
+               }
                
                _SysDebug("AxWin4_GetWindowBuffer: %llx = %i", handle, Window->m_fd);
        }

UCC git Repository :: git.ucc.asn.au