shining-man / bsc_fw

Firmware battery safety controller (BSC)
MIT License
81 stars 15 forks source link

Bugfix: initWebApp2 kann einen NULL pointer für BleHandler bekommen #84

Closed THagenmaier closed 4 months ago

THagenmaier commented 4 months ago

BleHandler muss außerhalb des BLE tasks instantiiert werden, ansonsten kann initWebApp2 einen NULL Pointer übergeben, falls der Start des BLE Tasks sich verzögert (zum Beispiel weil der WiFi Aufbau hängt...)

meikjaeckle commented 4 months ago

Ich würde den garnicht auf den Heap legen, sondern statisch wie WebServer und co auch. Oder übersehe ich was?

THagenmaier commented 4 months ago

Laut aktuellem Code auf dem main branch ist er aber auf dem Heap:

main.cpp: 73: BleHandler* bleHandler;

und wird im task_ble erzeugt: Zeile 676: bleHandler = new BleHandler();

und in 1366 wird der Inhalt des Pointers an initWebApp2 gegeben.

Edit: Ja, vermutlich könnte der auch statisch abgelegt werden. :-)

meikjaeckle commented 4 months ago

Ja,das stimmt schon. Ich würde aber als Bugfix das gleich ändern. Dann fallen auch sämtliche nullptr Prüfungen weg und die fehlenden können wegbleiben.

shining-man commented 4 months ago

@THagenmaier Da hast du recht. Das kann schief laufen.

shining-man commented 4 months ago

Problem ist in der v0.5.11 behoben