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;