diff --git a/src/modems/hayes.c b/src/modems/hayes.c index 859ccb4..6dfb45d 100644 --- a/src/modems/hayes.c +++ b/src/modems/hayes.c @@ -1757,13 +1757,16 @@ static char * _request_attention_message_send(Hayes * hayes, return NULL; pdulen = strlen(pdu); len = sizeof(cmd) + 10 + pdulen + 1; - ret = malloc(len); + if((ret = malloc(len)) == NULL) + { + free(pdu); + return NULL; + } if(channel->quirks & HAYES_QUIRK_WANT_SMSC_IN_PDU) pdulen -= 2; /* FIXME really issue using two separate commands */ - if(ret != NULL) - snprintf(ret, len, "%s%lu\r\n%s", cmd, ((unsigned long)pdulen - - 1) / 2, pdu); + snprintf(ret, len, "%s%lu\r\n%s", cmd, ((unsigned long)pdulen - 1) / 2, + pdu); free(pdu); return ret; }