handleRoot (httpd) Function Crashes ESP

*** SOLVED *** I had a buffer overflow on html0 which i only allocated 100 bytes to, I overlooked it a million times. Simply posting this helped me solve it.

I have worked on this to ensure it was error-free. However, when it is called, an exception (29) and stack trace are dumped to Serial Monitor. I have the exception decode and will paste that too. I am unfamiliar with interpreting stack trace data.

I know it occurs a bit into the code because the commented out section server.send…return gave me results on www browser.

void handleRoot() { //Content of page is here.
  char* html00 = 0;
  int fanMode = readEEprom("fanMode");
  int fanPostMixTime = readEEprom("fanPostMixTime");
  int fanFor = readEEprom("fanFor");
  int fanEvery = readEEprom("fanEvery");
  int hoursFan = readEEprom("minsFan");
  int hoursHeat = readEEprom("minsHeat");
  int hoursCool = readEEprom("minsCool");
  char hoursFanA[6];
  char hoursHeatA[6];
  char hoursCoolA[6];
  hoursFan = (hoursFan / 60);
  hoursHeat = (hoursHeat / 60);
  hoursCool = (hoursCool / 60);
  itoa(hoursFan, hoursFanA, 10);
  itoa(hoursHeat, hoursHeatA, 10);
  itoa(hoursCool, hoursCoolA, 10);
  char html0[82] = { 0 }, html0b[100] = { 0 }, html1[100] = { 0 }, html2[100] = { 0 }, html3[400] = { 0 }, html4[100] = { 0 }, html5[200] = { 0 };
  char html6[100] = { 0 }, html7[200] = { 0 },  html8[200] = { 0 }, html9[100] = { 0 };
  char tempSettingA[4];
  char currentTempA[4];
  unsigned long minsOn = ((millis() - msOn) / 1000 * 60);
  //server.send(200,"text/plain","Testing");
  //return;
  Serial.print("Mins on:"); Serial.print(minsOn);
  char minsOnA[4];
  itoa(minsOn, minsOnA, 10);
  itoa(tempSetting, tempSettingA, 10);
  itoa(currentTemp, currentTempA, 10);
  strcpy(html0, "<!DOCTYPE html><html><head><title>Thermostatv00</title></head><body><hr> System: ");
  modeName.toCharArray(html0b, 8);
  strcat(html0, " for ");
  strcat(html0, minsOnA);
  strcat(html0, "mins <hr> <a href=035><font color=red> UP </font></a>
<font size=6>");
  strcat(html0, tempSettingA);
  strcat(html0, "</font><font size=3> Currently:");
  strcat(html0, currentTempA);
  if (fanMode == 0) strcat(html0, "
 </font><a href=036><font color=blue> DOWN</font></a>
<hr><font color = black><a href=0290000><b> * Fan on With H/C * </b></a>
 <a href=0290010> Fan on All Time </a>
 <a href=0290020> Fan Post-mix </a>
 <a href=0290021> - </a>");
  if (fanMode == 1) strcat(html0, "
 </font><a href=036><font color=blue> DOWN</font></a>
<hr><font color = black><a href=0290000> Fan on With H/C </a>
 <a href=0290010><b> * Fan on All Time * </b> </a>
 <a href=0290020> Fan Post-mix </a>
 <a href=0290021> - </a>");
  if (fanMode == 2) strcat(html0, "
 </font><a href=036><font color=blue> DOWN</font></a>
<hr><font color = black><a href=0290000> Fan on With H/C </a>
 <a href=0290010> Fan on All Time </a>
 <a href=0290020><b> * Fan Post-mix * </b></a>
 <a href=0290021> - </a>");
  if (fanMode == 3) strcat(html0, "
 </font><a href=036><font color=blue> DOWN</font></a>
<hr><font color = black><a href=0290000> Fan on With H/C </a>
 <a href=0290010> Fan on All Time </a>
 <a href=0290020>Fan Post-mix</a>
 <a href=0290021> - </a>");
  char fanPostMixTimeA[4];
  itoa(fanPostMixTime, fanPostMixTimeA, 10);
  strcat(html0, fanPostMixTimeA);
  if (fanMode < 3)   strcat(html0, "Mins <a href=0290022> + </a>
 <a href=0290030> Fan on FOR... Every...  </a>
 <a href=0290031>  - </a>");
  if (fanMode == 3)  strcat(html0, "Mins <a href=0290022> + </a>
 <a href=0290030><b> * Fan on FOR... Every... * </b> </a>
 <a href=0290031>  - </a>
");
  char fanForA[4];
  char fanEveryA[4];
  itoa(fanFor, fanForA, 10);
  strcat(html0, fanForA);
  strcat(html0, "Mins <a href=0290032> + </a> <a href=0290033> &nbsp &nbsp &nbsp &nbsp - </a>");

  itoa(fanEvery, fanEveryA, 10);
  strcat(html0, fanEveryA);
  strcat(html0, "Mins <a href=0290034> + </a>");
  strcpy(html0, "<hr>Run times in hours
<table><tr><th>Fan</th><th>Heat</th><th>Cool</th><tr>");
  strcat(html0, "<td>");
  strcat(html0, hoursFanA);
  strcat(html0, "</td><td>");
  strcat(html0, hoursHeatA);
  strcat(html0, "</td><td>");
  strcat(html0, hoursCoolA);
  strcat(html0, "</td></tr></table>");
  
  server.send(200, "text/html",html0);
}
0x4020a240: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\matt\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/HardwareSerial.cpp line 133
0x4020bf6d: __itoa at /Users/igrokhotkov/e/newlib-xtensa/xtensa-lx106-elf/newlib/libc/stdlib/../../../.././newlib/libc/stdlib/itoa.c line 59
0x4020bf84: itoa at /Users/igrokhotkov/e/newlib-xtensa/xtensa-lx106-elf/newlib/libc/stdlib/../../../.././newlib/libc/stdlib/itoa.c line 69
0x402035c4: handleRoot() at C:\Users\matt\Documents\Arduino\thermostat20/thermostat20.ino line 777
0x40100030: _KernelExceptionVector at ?? line ?
0x4020a85f: String::changeBuffer(unsigned int) at C:\Users\matt\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/WString.cpp line 566
0x4010020c: _umm_free at C:\Users\matt\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266\umm_malloc/umm_malloc.c line 1295
0x402072c0: FunctionRequestHandler::handle(ESP8266WebServer&, HTTPMethod, String) at C:\Users\matt\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266WebServer\src/ESP8266WebServer.cpp line 221
0x4020b5ae: std::_Function_handler ::_M_invoke(std::_Any_data const&) at c:\users\matt\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2/functional line 2073
0x402072b6: std::function ::operator()() const at C:\Users\matt\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/ScheduledFunctions.cpp line 116
0x402072f2: FunctionRequestHandler::handle(ESP8266WebServer&, HTTPMethod, String) at C:\Users\matt\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266WebServer\src/ESP8266WebServer.cpp line 221
0x4020aa0c: String::String(String const&) at C:\Users\matt\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/WString.cpp line 566
0x40207379: ESP8266WebServer::_handleRequest() at C:\Users\matt\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266WebServer\src/ESP8266WebServer.cpp line 221
0x40106644: millis at C:\Users\matt\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/core_esp8266_wiring.c line 183
0x4020679c: FunctionRequestHandler::canHandle(HTTPMethod, String) at C:\Users\matt\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266WebServer\src/ESP8266WebServer.cpp line 221
0x402075c8: ESP8266WebServer::handleClient() at C:\Users\matt\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266WebServer\src/ESP8266WebServer.cpp line 221
0x40202e7c: flasher(int, int, int, int, int, int) at C:\Users\matt\Documents\Arduino\thermostat20/thermostat20.ino line 777
0x40203d6b: loop at C:\Users\matt\Documents\Arduino\thermostat20/thermostat20.ino line 107
0x4020b3f4: loop_wrapper at C:\Users\matt\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/core_esp8266_main.cpp line 125
0x40100739: cont_wrapper at C:\Users\matt\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/cont.S line 81