From eb587c63d3897f5f3a5f14b07e125cea910b79af Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Fri, 21 Aug 2015 19:42:09 +0800 Subject: [PATCH] fix issue #327 --- skynet-src/skynet_server.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/skynet-src/skynet_server.c b/skynet-src/skynet_server.c index 4972e7a4..64258a92 100644 --- a/skynet-src/skynet_server.c +++ b/skynet-src/skynet_server.c @@ -674,7 +674,9 @@ int skynet_send(struct skynet_context * context, uint32_t source, uint32_t destination , int type, int session, void * data, size_t sz) { if ((sz & MESSAGE_TYPE_MASK) != sz) { skynet_error(context, "The message to %x is too large", destination); - skynet_free(data); + if (type & PTYPE_TAG_DONTCOPY) { + skynet_free(data); + } return -1; } _filter_args(context, type, &session, (void **)&data, &sz);