Merge 1f54b7cceb81f6cb72b1ecee3c7e0f4bcd698438 on remote branch
Change-Id: Ib20c27026b6d0c901a1adf9e4e6cf69ac3fca23a
diff --git a/src/fastrpc_apps_user.c b/src/fastrpc_apps_user.c
index 39c904b..7d159cf 100644
--- a/src/fastrpc_apps_user.c
+++ b/src/fastrpc_apps_user.c
@@ -90,6 +90,7 @@
#define INVALID_KEY (pthread_key_t)(-1)
#define MAX_DMA_HANDLES 256
+#define MAX_DLERRSTR_LEN 255
#define FASTRPC_TRACE_INVOKE_START "fastrpc_trace_invoke_start"
#define FASTRPC_TRACE_INVOKE_END "fastrpc_trace_invoke_end"
@@ -924,14 +925,20 @@
int remote_handle_close(remote_handle h)
{
- char dlerrstr[255];
+ char *dlerrstr = NULL;
int dlerr = 0, nErr = AEE_SUCCESS;
+ size_t err_str_len = MAX_DLERRSTR_LEN*sizeof(char);
- VERIFY(AEE_SUCCESS == (nErr = remotectl_close(h, dlerrstr, sizeof(dlerrstr), &dlerr)));
+ VERIFYC(NULL != (dlerrstr = (char*)calloc(1, err_str_len)), AEE_ENOMEMORY);
+ VERIFY(AEE_SUCCESS == (nErr = remotectl_close(h, dlerrstr, err_str_len, &dlerr)));
VERIFY(AEE_SUCCESS == (nErr = dlerr));
bail:
if (nErr != AEE_SUCCESS) {
- FARF(HIGH, "Error %x: remote handle close failed. error %s\n", nErr, dlerrstr);
+ FARF(HIGH, "Error %x: remote handle close failed. error %s\n", nErr, dlerrstr);
+ }
+ if (dlerrstr) {
+ free(dlerrstr);
+ dlerrstr = NULL;
}
return nErr;
}