--- libaitrpc/src/srv.c 2015/07/22 20:01:46 1.28 +++ libaitrpc/src/srv.c 2016/06/23 15:59:52 1.28.2.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: srv.c,v 1.28 2015/07/22 20:01:46 misho Exp $ +* $Id: srv.c,v 1.28.2.1 2016/06/23 15:59:52 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -312,8 +312,7 @@ rxPacket(sched_task_t *task) u_short crc; #endif u_char *buf = AIT_GET_BUF(&c->cli_buf); - u_char b[sizeof(struct tagRPCCall)]; - struct tagRPCCall *rpc = (struct tagRPCCall*) buf; + struct tagRPCCall b, *rpc = (struct tagRPCCall*) buf; #ifdef TCP_SESSION_TIMEOUT struct timespec ts = { DEF_RPC_TIMEOUT, 0 }; @@ -323,9 +322,9 @@ rxPacket(sched_task_t *task) #endif /* prepare rx */ - len = recv(TASK_FD(task), b, sizeof b, MSG_PEEK); + len = recv(TASK_FD(task), &b, sizeof b, MSG_PEEK); if (len == sizeof b) - rlen = ntohl(((struct tagRPCCall*) b)->call_len); + rlen = ntohl(b.call_len); rlen = recv(TASK_FD(task), buf, rlen, 0); if (rlen == -1) {