--- libaitmqtt/src/cmds.c 2022/09/15 15:13:31 1.4.2.2 +++ libaitmqtt/src/cmds.c 2022/09/15 15:48:41 1.4.2.3 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: cmds.c,v 1.4.2.2 2022/09/15 15:13:31 misho Exp $ +* $Id: cmds.c,v 1.4.2.3 2022/09/15 15:48:41 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -109,6 +109,10 @@ mqtt_KeepAlive(int sock, u_short ka, u_char tries) } /* receive & decode packet */ msg = mqtt_msgAlloc(BUFSIZ); + if (!msg) { + ret = -1; + break; + } if ((ret = recv(sock, msg->msg_base, msg->msg_len, 0)) == -1) { LOGERR; break; @@ -118,6 +122,7 @@ mqtt_KeepAlive(int sock, u_short ka, u_char tries) break; } else ret = 2; /* Session is broken ... must be disconnect! */ + mqtt_msgFree(&msg, 0); } end: mqtt_msgFree(&msg, 0); @@ -160,6 +165,8 @@ mqtt_WillMessage(int sock, u_short ka, const char *top return ret; /* receive & decode packet */ msg = mqtt_msgAlloc(BUFSIZ); + if (!msg) + return -1; if ((ret = recv(sock, msg->msg_base, msg->msg_len, 0)) == -1) { LOGERR; mqtt_msgFree(&msg, 0); @@ -169,7 +176,7 @@ mqtt_WillMessage(int sock, u_short ka, const char *top ret = 0; /* ok */ else ret = 2; /* semi-error */ - mqtt_msgFree(&msg, 0); + return ret; }