From a6d594665b7b418b041d606ba7af74d8cf2e77ff Mon Sep 17 00:00:00 2001
From: Scott Lahteine <sourcetree@thinkyhead.com>
Date: Wed, 11 May 2016 15:28:05 -0700
Subject: [PATCH] Print an error on bad i2c request

Reference: https://github.com/MarlinFirmware/Marlin/pull/3713#issuecomment-218333678
---
 Marlin/Marlin_main.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index 45907f3557..10d26ac98b 100644
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -5040,10 +5040,14 @@ inline void gcode_M121() { endstops.enable_globally(false); }
     uint8_t addr = code_seen('A') ? code_value_short() : 0;
     int bytes    = code_seen('B') ? code_value_short() : 0;
 
-    if (addr && bytes) {
+    if (addr && bytes > 0 && bytes <= 32) {
       i2c.address(addr);
       i2c.reqbytes(bytes);
     }
+    else {
+      SERIAL_ERROR_START;
+      SERIAL_ERRORLN("Bad i2c request");
+    }
   }
 
 #endif //EXPERIMENTAL_I2CBUS