release-request-bbc747ae-190b-4d38-8704-432aa6396c16-for-git_oc-mr1-release-4351869 snap-temp-L93800000104806132

Change-Id: I9415798bb745f89d0d97458a2d3248fe45316b55
diff --git a/platform/slpi/host_link.cc b/platform/slpi/host_link.cc
index cf1b957..ce37382 100644
--- a/platform/slpi/host_link.cc
+++ b/platform/slpi/host_link.cc
@@ -260,10 +260,13 @@
         startedSuccessfully);
   };
 
+  // Re-wrap the callback data struct, so it is destructed and freed, ensuring
+  // we don't leak the embedded UniquePtr<Nanoapp>
+  UniquePtr<LoadNanoappCallbackData> dataWrapped(
+      static_cast<LoadNanoappCallbackData *>(data));
   constexpr size_t kInitialBufferSize = 48;
   buildAndEnqueueMessage(PendingMessageType::LoadNanoappResponse,
                          kInitialBufferSize, msgBuilder, data);
-  memoryFree(data);
 }
 
 void handleUnloadNanoappCallback(uint16_t /*eventType*/, void *data) {