Problema con sketch per il riconoscimento di una password

Salve a tutti,sto realizzano un semplice sketch,per la gestione di una password a 6 cifre. Fondamentalmente funziona tutto,ma quando per esempio vado ad inserire un codice a 7 cifre invece che sei,e poi inserisco la password esatta,ottengo sempre il messaggio che la password e' quella scorretta. E' come se il buffer del vettore di caratteri in cui sono contenuti gli elementi della password non si svuotasse del tutto!

Qui il codice

#define Password_Lenght 7 // Give enough room for six chars + NULL char

char Data[Password_Lenght]; // 6 is the number of chars it can hold + the null char = 7
char Master[Password_Lenght] = "123456";
byte data_count = 0, master_count = 0;
bool Pass_is_good;


void setup()
{
  Serial.begin(9600);
  Serial.println("Inserire codice: ");
}

void loop()
{ //START LOOP

  
  if (Serial.available()){
    char input = Serial.read();


  if (input) 
  {
    Data[data_count] = input; // store char into data array
  
    data_count++; // increment data array by 1 to store new char, also keep track of the number of chars entered
  }

  if(data_count == Password_Lenght-1) // if the array index is equal to the number of expected chars, compare data to master
  {
  
    if(strncmp(Data, Master,7)) 
      Serial.println("Codice errato!");
    else
      Serial.println("Codice corretto!");

    delay(1000);// added 1 second delay to make sure the password is completely shown on screen before it gets cleared.
    
      clearData();   
  }
}

}// END LOOP

void clearData()
{
  Serial.println(Data);
  while(data_count !=0)
  {   // This can be used for any array size, 
    Serial.println(Data);
    Data[data_count--] = 0; //clear array for new data
    Serial.println(Data);
  }
  return;
}

Ciao il problema credo risieda nel fatto che prendi tutti i dati dalla seriale e li inserisci nel tuo array senza verificare se hai superato il limite dello stesso, incappando quindi in problemi non predicibili.
Prima di effettuare

Data[data_count] = input; // store char into data array

magari verifica che la variabile

data_count

sia ancora inclusa nella dimensione massima dell’array un po’ come hai già fatto per entrare nella verifica della password ma invece dell’== usa un < se sei ancora all’interno della dimensione massima memorizzi il carattere, altrimenti non fai nulla, neppure l’incremento