* Check for NULL pointers before reading them.

This commit is contained in:
Justin Maggard 2013-02-01 20:26:52 +00:00
parent db1b9dff32
commit 77c30bdfba

View File

@ -173,23 +173,23 @@ sendBeaconMessage(int fd, struct sockaddr_in * client, int len, int broadcast)
* Returns true if this was a broadcast beacon msg * Returns true if this was a broadcast beacon msg
*/ */
int int
rcvBeaconMessage(char * beacon) rcvBeaconMessage(char *beacon)
{ {
char * tivoConnect = NULL; char *tivoConnect = NULL;
char * method = NULL; char *method = NULL;
char * identity = NULL; char *identity = NULL;
char * machine = NULL; char *machine = NULL;
char * platform = NULL; char *platform = NULL;
char * services = NULL; char *services = NULL;
char * cp; char *cp;
char * scp; char *scp;
char * tokptr; char *tokptr;
cp = strtok_r(beacon, "=\r\n", &tokptr); cp = strtok_r(beacon, "=\r\n", &tokptr);
while( cp != NULL ) while( cp != NULL )
{ {
scp = cp; scp = cp;
cp = strtok_r( NULL, "=\r\n", &tokptr ); cp = strtok_r(NULL, "=\r\n", &tokptr);
if( strcasecmp(scp, "tivoconnect") == 0 ) if( strcasecmp(scp, "tivoconnect") == 0 )
tivoConnect = cp; tivoConnect = cp;
else if( strcasecmp(scp, "method") == 0 ) else if( strcasecmp(scp, "method") == 0 )
@ -205,12 +205,12 @@ rcvBeaconMessage(char * beacon)
cp = strtok_r(NULL, "=\r\n", &tokptr); cp = strtok_r(NULL, "=\r\n", &tokptr);
} }
if( tivoConnect == NULL ) if( !tivoConnect || !platform || !method )
return 0; return 0;
#ifdef DEBUG #ifdef DEBUG
static struct aBeacon* topBeacon = NULL; static struct aBeacon *topBeacon = NULL;
struct aBeacon * b; struct aBeacon *b;
time_t current; time_t current;
int len; int len;
char buf[32]; char buf[32];