diff --git a/src/helpers/AdvertDataHelpers.cpp b/src/helpers/AdvertDataHelpers.cpp index 998733ae04..85172762fc 100644 --- a/src/helpers/AdvertDataHelpers.cpp +++ b/src/helpers/AdvertDataHelpers.cpp @@ -37,13 +37,16 @@ int i = 1; if (_flags & ADV_LATLON_MASK) { + if (i + 8 > app_data_len) return; memcpy(&_lat, &app_data[i], 4); i += 4; memcpy(&_lon, &app_data[i], 4); i += 4; } if (_flags & ADV_FEAT1_MASK) { + if (i + 2 > app_data_len) return; memcpy(&_extra1, &app_data[i], 2); i += 2; } if (_flags & ADV_FEAT2_MASK) { + if (i + 2 > app_data_len) return; memcpy(&_extra2, &app_data[i], 2); i += 2; }