Fix for buffer overrun crash at copying nmea string

Add zero clearing of allocated nmea buffer to ensure
the nmea string is null terminated.

Change-Id: Ie36010a7d3eca16dabb3067ae891a94e4b63b10c
CRs-Fixed: 2041933
This commit is contained in:
Katz Yamada 2017-05-04 14:43:52 -07:00
parent 10ab9ccaaf
commit 604d874143
2 changed files with 3 additions and 3 deletions

View file

@ -1396,7 +1396,7 @@ bool SystemStatus::setNmeaString(const char *data, uint32_t len)
}
char buf[SystemStatusNmeaBase::NMEA_MAXSIZE + 1] = { 0 };
strlcpy(buf, data, (len < strlen(data))? len : strlen(data));
strlcpy(buf, data, sizeof(buf));
pthread_mutex_lock(&mMutexSystemStatus);

View file

@ -2002,9 +2002,9 @@ GnssAdapter::reportNmeaEvent(const char* nmea, size_t length, bool fromUlp)
size_t length) :
LocMsg(),
mAdapter(adapter),
mNmea(new char[length]),
mNmea(new char[length+1]),
mLength(length) {
memcpy((void*)mNmea, (void*)nmea, length);
strlcpy((char*)mNmea, nmea, length+1);
}
inline virtual ~MsgReportNmea()
{