TransportRpmsg: Add NULL check to avoid NULL pointer access
[ipc/ipcdev.git] / packages / ti / ipc / transports / TransportRpmsg.c
index 154d7d112794ff65413af8d7338dec6a80c5abd3..365cca05b2fe7f06463f27291e968e62ede33917 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * Copyright (c) 2012-2019, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -104,7 +104,7 @@ Int TransportRpmsg_Instance_init(TransportRpmsg_Object *obj,
     obj->remoteProcId = remoteProcId;
 
     /* Announce our "MessageQ" service to the HOST: */
-#ifdef OMAP5
+#ifdef RPMSG_NS_2_0
     NameMap_register(RPMSG_SOCKET_NAME, RPMSG_SOCKET_NAME, RPMSG_MESSAGEQ_PORT);
 #else
     NameMap_register(RPMSG_SOCKET_NAME, RPMSG_MESSAGEQ_PORT);
@@ -147,7 +147,7 @@ Void TransportRpmsg_Instance_finalize(TransportRpmsg_Object *obj, Int status)
     Log_print0(Diags_ENTRY, "--> "FXNN);
 
     /* Announce our "MessageQ" service is going away: */
-#ifdef OMAP5
+#ifdef RPMSG_NS_2_0
     NameMap_unregister(RPMSG_SOCKET_NAME, RPMSG_SOCKET_NAME,
             RPMSG_MESSAGEQ_PORT);
 #else
@@ -306,6 +306,10 @@ static Void transportCallbackFxn(RPMessage_Handle msgq, UArg arg, Ptr data,
 
     /* Make sure buf is not NULL */
     Assert_isTrue(buf != NULL, NULL);
+    if (buf == NULL) {
+        Log_print0(Diags_INFO, FXNN" MessageQ_alloc failed \n");
+        goto exit;
+    }
 
     /* copy the message to the buffer allocated. */
     memcpy((Ptr)buf, (Ptr)msg, msgSize);