fix a potential null pointer deference error and

IceAllocScratch() do not report size when allocation failes

Signed-off-by: Walter Harms <wha...@bfs.de>

---
 src/misc.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/misc.c b/src/misc.c
index 87d6335..fdc671d 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -57,7 +57,10 @@ IceAllocScratch (
        free (iceConn->scratch);

        iceConn->scratch = malloc (size);
-       iceConn->scratch_size = size;
+       if ( !iceConn->scratch )
+            iceConn->scratch_size = 0;
+       else
+            iceConn->scratch_size = size;
     }

     return (iceConn->scratch);
@@ -415,12 +418,14 @@ _IceAddOpcodeMapping (
 )
 {
     if (hisOpcode <= 0 || hisOpcode > 255)
-    {
        return;
-    }
-    else if (iceConn->process_msg_info == NULL)
+
+    if (iceConn->process_msg_info == NULL)
     {
        iceConn->process_msg_info = malloc (sizeof (_IceProcessMsgInfo));
+       if ( ! iceConn->process_msg_info )
+         return;
+
        iceConn->his_min_opcode = iceConn->his_max_opcode = hisOpcode;
     }
     else if (hisOpcode < iceConn->his_min_opcode)
@@ -433,6 +438,9 @@ _IceAddOpcodeMapping (
        iceConn->process_msg_info = malloc (
            newsize * sizeof (_IceProcessMsgInfo));

+       if ( ! iceConn->process_msg_info )
+         return;
+
        memcpy (&iceConn->process_msg_info[
            iceConn->his_min_opcode - hisOpcode], oldVec,
            oldsize * sizeof (_IceProcessMsgInfo));
@@ -460,6 +468,9 @@ _IceAddOpcodeMapping (
        iceConn->process_msg_info = malloc (
            newsize * sizeof (_IceProcessMsgInfo));

+       if ( ! iceConn->process_msg_info )
+         return;
+
        memcpy (iceConn->process_msg_info, oldVec,
            oldsize * sizeof (_IceProcessMsgInfo));

-- 
2.1.4

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to