ESP32 Stack Smashing Protect Failure

I have set the number of buffers to store data but still error. i want send data from ESP32 to LoRa Gateway, where ESP32 receive data from serial communication with arduino

my code :

#include <lorawan.h>

const char *devAddr = "6825462f"; // Device Address dari Antares
const char *nwkSKey = "6825462f225140d63fd5eac77c5d56fa"; // Network Session Key dari Antares
const char *appSKey = "6825462fc0bc0d8899fb1cec03c748b9"; // Application Session Key dari Antares

const unsigned long sendInterval = 60000;  // 1 menit  interval untuk mengirim data ke LoRa
const unsigned long readInterval = 10000;   // 2 detik interval untuk membaca data dari Arduino
unsigned long previousMillisSend = 0;  // Waktu terakhir pengiriman LoRa
unsigned long previousMillisRead = 0;  // Waktu terakhir pembacaan data sensor dari Arduino
unsigned int counter = 0;     // Counter pesan

char myStr[128];  // Untuk menyimpan data sensor yang akan dikirim
char outStr[0];  // Buffer untuk data yang diterima dari LoRa
byte recvStatus = 0;  
int channel;

const sRFM_pins RFM_pins = {
  .CS = 2,    // Pin untuk NSS
  .RST = 0,   // Pin untuk RST
  .DIO0 = 14, // Pin untuk DIO0
  .DIO1 = 12, // Pin untuk DIO1
};

HardwareSerial mySerial(1);  // Serial 1, dapat menggunakan Serial1 atau Serial2

void setup() {
  Serial.begin(9600);  
  Serial.println("Menunggu data dari Arduino...");

  // Inisialisasi mySerial dengan baud rate 9600 dan pin RX=16, TX=17
  mySerial.begin(9600, SERIAL_8N1, 16, 17);

  delay(2000);
  if (!lora.init()) {
    Serial.println("LoRa not detected");
    delay(5000);
    return;
  }
  Serial.println("LoRa Initialized");

  // Set LoRaWAN Class
  lora.setDeviceClass(CLASS_C);

  // Set Data Rate
  lora.setDataRate(SF10BW125);

  // Set channel ke random
  lora.setChannel(MULTI);

  // Set TxPower ke 15 dBi (max)
  lora.setTxPower(15);

  // Masukkan ABP Key dan DevAddress
  lora.setNwkSKey(nwkSKey);
  lora.setAppSKey(appSKey);
  lora.setDevAddr(devAddr);
}

void loop() {
  unsigned long currentMillis = millis();  // Mendapatkan waktu saat ini
  
  // Membaca data dari Arduino setiap 2 detik
  if (millis() - previousMillisRead >= readInterval) {
    previousMillisRead = millis();  // Update waktu pembacaan

    if (mySerial.available()>0) {
      String data = mySerial.readStringUntil('\n');  // Membaca seluruh data yang diterima
      Serial.println("Data diterima dari Arduino:");
      Serial.println(data);  // Menampilkan data yang diterima
    
      // Mengonversi String data menjadi char array untuk pengiriman LoRa
      data.toCharArray(myStr, sizeof(myStr));
    }
    else {
    Serial.println("No data received");
    }
  }

  // Mengirim data ke LoRa setiap detik
  if (millis() - previousMillisSend >= sendInterval) {
    previousMillisSend = millis();  // Update waktu pengiriman

    // Kirim data melalui LoRaWAN hanya jika data tersedia
    if (strlen(myStr) > 0) {
      Serial.println("Sending via LoRa: ");
      Serial.println(myStr);
      lora.sendUplink(myStr, strlen(myStr), 0);  // Mengirim data melalui LoRa
      counter++;
    }
  }
  // Check Lora RX (menerima data dari LoRa)
  lora.update();

  recvStatus = lora.readData(outStr);
  if (recvStatus) {
    int counter = 0;

    for (int i = 0; i < recvStatus; i++) {
      if (((outStr[i] >= 32) && (outStr[i] <= 126)) || (outStr[i] == 10) || (outStr[i] == 13))
        counter++;
    }

    if (counter == recvStatus) {
      Serial.print(F("Received String : "));
      for (int i = 0; i < recvStatus; i++) {
        Serial.print(char(outStr[i]));
      }
    } else {
      Serial.print(F("Received Hex : "));
      for (int i = 0; i < recvStatus; i++) {
        Serial.print(outStr[i], HEX); Serial.print(" ");
      }
    }
    Serial.println();
  }
}

my error :

There are two avenues of attack to resolve this issue. The first is to eliminate the use of String and change to string.
The second, if that does not fix things, is to start stripping out code until you isolate the code causing the problem.

um, not much of a buffer..
0 is nothing..
smashing the stack, probably a for loop gone wild..

good luck.. ~q