From e88e08f27083af2bcbeb4e9bf1c57b575ac287a5 Mon Sep 17 00:00:00 2001
From: Giovanni Bruno <giovannididio.bruno@gmail.com>
Date: Tue, 21 Nov 2023 14:58:57 +0100
Subject: [PATCH] Fixed memory on Wire instance

The constructor doesn't cleanup memory for a wire instance.
Issues could happen, such as wrong initialization during boot

Signed-off-by: Giovanni Bruno <giovannididio.bruno@gmail.com>
---
 libraries/Wire/src/Wire.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libraries/Wire/src/Wire.cpp b/libraries/Wire/src/Wire.cpp
index c0b1a25d7a..055bdec262 100644
--- a/libraries/Wire/src/Wire.cpp
+++ b/libraries/Wire/src/Wire.cpp
@@ -35,12 +35,14 @@ static const uint8_t MASTER_ADDRESS = 0x01;
 
 TwoWire::TwoWire()
 {
+  memset((void *)&_i2c, 0, sizeof(_i2c));
   _i2c.sda = digitalPinToPinName(SDA);
   _i2c.scl = digitalPinToPinName(SCL);
 }
 
 TwoWire::TwoWire(uint32_t sda, uint32_t scl)
 {
+  memset((void *)&_i2c, 0, sizeof(_i2c));
   _i2c.sda = digitalPinToPinName(sda);
   _i2c.scl = digitalPinToPinName(scl);
 }