From 058499446d32ca48e8ff2fec9615bee6bc6ca23b Mon Sep 17 00:00:00 2001 From: Kezhu Wang Date: Sun, 5 Aug 2012 16:44:04 +0800 Subject: [PATCH] avoid potentially context name falling into harbor id --- skynet_harbor.c | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/skynet_harbor.c b/skynet_harbor.c index 9eaec98c..6d730543 100644 --- a/skynet_harbor.c +++ b/skynet_harbor.c @@ -313,6 +313,36 @@ _report_zmq_error(int rc) { } } +static int +_isdecimal(int c) { + return c>='0' && c<='9'; +} + +// Name-updating protocols: +// +// 1) harbor_id=harbor_address +// 2) context_name=context_handle +static int +_split_name(uint8_t *buf, int len, int *np) { + uint8_t *sep; + if (len > 0 && _isdecimal(buf[0])) { + int i=0; + int n=0; + do { + n = n*10 + (buf[i]-'0'); + } while(++izmq_local,&content,0); _report_zmq_error(rc); int sz = zmq_msg_size(&content); - int i; - int n = 0; uint8_t * buffer = zmq_msg_data(&content); - for (i=0;i