[spp] [PATCH 14/57] spp_vf: fix return value overwrite problem
x-fn-spp at sl.ntt-tx.co.jp
x-fn-spp at sl.ntt-tx.co.jp
Thu Dec 28 05:55:21 CET 2017
From: Hiroyuki Nakamura <nakamura.hioryuki at po.ntt-tx.co.jp>
Add new variable for saving the return value of receive_message()
to avoid overwrite problem.
Signed-off-by: Kentaro Watanabe <watanabe.kentaro.z01 at as.ntt-tx.co.jp>
Signed-off-by: Yasufum Ogawa <ogawa.yasufumi at lab.ntt.co.jp>
---
src/vf/command_proc.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/vf/command_proc.c b/src/vf/command_proc.c
index d8e7fd1..3ec4f5b 100644
--- a/src/vf/command_proc.c
+++ b/src/vf/command_proc.c
@@ -749,6 +749,7 @@ void
spp_command_proc_do(void)
{
int ret = -1;
+ int msg_ret = -1;
int i;
static int sock = -1;
@@ -765,12 +766,12 @@ spp_command_proc_do(void)
if (unlikely(ret != 0))
return;
- ret = receive_message(&sock, &msgbuf);
- if (likely(ret == 0)) {
+ msg_ret = receive_message(&sock, &msgbuf);
+ if (likely(msg_ret == 0)) {
return;
}
- for (i = 0; i < ret; ++i) {
+ for (i = 0; i < msg_ret; ++i) {
switch (*(msgbuf + msg_len + i)) {
case '{':
++lb_cnt;
@@ -785,9 +786,12 @@ spp_command_proc_do(void)
ret = process_request(msgbuf, msg_len);
msgbuf_remove_front(msgbuf, msg_len);
+ msg_ret = 0;
msg_len = 0;
rb_cnt = 0;
lb_cnt = 0;
}
}
+
+ msg_len = msg_len + msg_ret;
}
--
1.9.1
More information about the spp
mailing list