diff --git a/system/service/gatt_server.cc b/system/service/gatt_server.cc index 52fd1edf60bde354894dc5fdbcd78fb2fefe78ee..f46927d7019b358365d561a1fa9adacc587880c3 100644 --- a/system/service/gatt_server.cc +++ b/system/service/gatt_server.cc @@ -18,6 +18,7 @@ #include <base/logging.h> +#include "osi/include/log.h" #include "service/logging_helpers.h" #include "stack/include/bt_types.h" @@ -116,6 +117,12 @@ bool GattServer::SendResponse(const std::string& device_address, int request_id, return false; } + if (offset < 0) { + android_errorWriteLog(0x534e4554, "143231677"); + LOG(ERROR) << "Offset is less than 0 offset: " << offset; + return false; + } + if (value.size() + offset > BTGATT_MAX_ATTR_LEN) { LOG(ERROR) << "Value is too large"; return false;