Linux/Qnx: MessageQ msg cannot be freed if put fails
[ipc/ipcdev.git] / qnx / src / api / MessageQ.c
index b9a477caab7b82c15657f8a1eeacc1bf8409e70e..d225ec432f0e18f78daaac4f9005b996bd7b5ef8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * Copyright (c) 2012-2014, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -958,6 +958,7 @@ static Int transportPut(MessageQ_Msg msg, UInt16 dstId, UInt16 dstProcId)
         printf ("transportPut: write failed: %d, %s\n",
                   errno, strerror(errno));
         status = MessageQ_E_FAIL;
+        goto exit;
     }
 
     /*
@@ -966,5 +967,6 @@ static Int transportPut(MessageQ_Msg msg, UInt16 dstId, UInt16 dstProcId)
      */
     MessageQ_free (msg);
 
+exit:
     return (status);
 }