diff --git a/frameworks/liteipc/src/liteipc_adapter.c b/frameworks/liteipc/src/liteipc_adapter.c index 67d9422337d4750b241936423dee7d1d5fecce3a..795f54108246fc9d57de62df2cc5f4f41dddb20f 100755 --- a/frameworks/liteipc/src/liteipc_adapter.c +++ b/frameworks/liteipc/src/liteipc_adapter.c @@ -398,7 +398,7 @@ static int32_t CheckIpcIo(IpcIo* data) return LITEIPC_EINVAL; } totalSize = data->bufferCur - data->bufferBase + ((char*)data->offsetsCur - (char*)data->offsetsBase); - if (totalSize > IPC_IO_DATA_MAX) { + if (totalSize > IPC_IO_BIG_MAX) { LOG(ERROR, "IpcIo data too big, please use IpcIoPushDataBuff to push big data."); return LITEIPC_EINVAL; } diff --git a/frameworks/liteipc_linux/src/liteipc_adapter.c b/frameworks/liteipc_linux/src/liteipc_adapter.c index 6453a284cfea6b9c1146cba73ee1dcabd757b205..0013ee7a0c98017e2197b68d0bfa2dbc9c81b0ce 100644 --- a/frameworks/liteipc_linux/src/liteipc_adapter.c +++ b/frameworks/liteipc_linux/src/liteipc_adapter.c @@ -47,7 +47,7 @@ static uint32_t g_handle = 0; static bool g_isStartLoop = false; __thread const IpcContext *g_tlsContext = NULL; __thread IpcIo **g_tlsReply = NULL; -__thread uint8_t g_tlsReplyData[IPC_IO_DATA_MAX] = {0}; +__thread uint8_t g_tlsReplyData[IPC_IO_BIG_MAX] = {0}; bool g_init = 0; struct TransactData { uint32_t cmd; @@ -214,7 +214,7 @@ static int32_t CheckIpcIo(IpcIo* data) return LITEIPC_EINVAL; } totalSize = data->bufferCur- data->bufferBase + ((char*)data->offsetsCur - (char*)data->offsetsBase); - if (totalSize > IPC_IO_DATA_MAX) { + if (totalSize > IPC_IO_BIG_MAX) { LOG(ERROR, "IpcIo data too big, please use IpcIoPushDataBuff to push big data."); return LITEIPC_EINVAL; } @@ -836,7 +836,7 @@ int32_t SendReply(const IpcContext* context, void* ipcMsg, IpcIo* reply) size_t objectsSize = tmp.offsetsLeft * sizeof(size_t); (*g_tlsReply)->bufferCur = (*g_tlsReply)->bufferBase = (char*)g_tlsReplyData + objectsSize; (*g_tlsReply)->offsetsCur = (*g_tlsReply)->offsetsBase = (size_t*)g_tlsReplyData; - memcpy_s((*g_tlsReply)->bufferBase, IPC_IO_DATA_MAX, tmp.bufferBase, tmp.bufferLeft); + memcpy_s((*g_tlsReply)->bufferBase, IPC_IO_BIG_MAX, tmp.bufferBase, tmp.bufferLeft); memcpy_s((*g_tlsReply)->offsetsBase, objectsSize, tmp.offsetsBase, objectsSize); (*g_tlsReply)->bufferLeft = tmp.bufferLeft; (*g_tlsReply)->offsetsLeft = tmp.offsetsLeft; diff --git a/interfaces/kits/liteipc_adapter.h b/interfaces/kits/liteipc_adapter.h index bf0911525fb37361cff4e1706cee82de918b999d..304854653faf1b00efa8a3f6cb3e02a82b09799e 100755 --- a/interfaces/kits/liteipc_adapter.h +++ b/interfaces/kits/liteipc_adapter.h @@ -35,7 +35,8 @@ extern "C" { #define IPC_WAIT_FOREVER 0XFFFFFFFF #define IPC_TIMEOUT_MIN 10 /* unit:ms */ #define IPC_INVAILD_TIMER_ID (timer_t)-1 -#define IPC_IO_DATA_MAX 64512UL +#define IPC_IO_DATA_MAX 8192UL +#define IPC_IO_BIG_MAX (42 * 1024UL) typedef enum { LITEIPC_FLAG_DEFAULT = 0, // send and reply