Linux/Tests: Fix freeing up of messages in MessageQApp
authorSuman Anna <s-anna@ti.com>
Fri, 1 May 2015 15:56:19 +0000 (10:56 -0500)
committerRobert Tivy <rtivy@ti.com>
Wed, 6 May 2015 23:35:02 +0000 (16:35 -0700)
Fix the freeing up of message in MessageQApp sample when
MessageQ_get fails. This otherwise prints out a following
error trace from glibc
"*** glibc detected *** ./MessageQApp: double free or corruption"

This was found during testing of remoteproc error-recovery,
and also failed to execute the sample when launched again
as it doesn't perform a Ipc_detach.

Signed-off-by: Suman Anna <s-anna@ti.com>
linux/src/tests/MessageQApp.c

index 908e0d648f88f500a73ca40152d1d86d144ae951..c0c0350c054121b3cf7a14753b6f65a06bf49e96 100644 (file)
@@ -128,6 +128,7 @@ Int MessageQApp_execute(UInt32 numLoops, UInt16 procId)
         status = MessageQ_put(queueId, msg);
         if (status < 0) {
             printf("Error in MessageQ_put [%d]\n", status);
+            MessageQ_free(msg);
             break;
         }
 
@@ -162,9 +163,9 @@ Int MessageQApp_execute(UInt32 numLoops, UInt16 procId)
 
     if (status >= 0) {
        printf("Sample application successfully completed!\n");
+       MessageQ_free(msg);
     }
 
-    MessageQ_free(msg);
     MessageQ_close(&queueId);
 
 cleanup: