--- libaitpelco/src/aitpelco.c 2010/03/17 13:34:34 1.1.1.1.2.4 +++ libaitpelco/src/aitpelco.c 2010/03/23 01:25:43 1.1.1.1.2.5 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitpelco.c,v 1.1.1.1.2.4 2010/03/17 13:34:34 misho Exp $ +* $Id: aitpelco.c,v 1.1.1.1.2.5 2010/03/23 01:25:43 misho Exp $ * *************************************************************************/ #include "global.h" @@ -119,6 +119,11 @@ inline void *pelcoLoad(u_char *buffer) pelco_p_t *pp; void *p = NULL; + if (!buffer || !*buffer) { + pelcoSetErr(EINVAL, "invalid argument!\n"); + return NULL; + } + switch (pelco_GetVersion(buffer)) { case 'd': if (pelco_GetCamNo(buffer) < FIRST_CAM_D) { @@ -167,7 +172,7 @@ inline u_char pelcoAddCmdData(void * __restrict p, u_c pelco_p_t *pp = (pelco_p_t *) p; u_char *ptr = p; - if (!p) { + if (!p || !*ptr) { pelcoSetErr(EINVAL, "invalid argument!\n"); return 0xFF; } @@ -229,7 +234,7 @@ inline u_char pelcoChkSum(void * __restrict p, u_char pelco_d_t *pd = (pelco_d_t *) p; pelco_p_t *pp = (pelco_p_t *) p; - if (!p) { + if (!p || !*ptr) { pelcoSetErr(EINVAL, "invalid argument!\n"); return 0xFF; }