arduino / arduino/ArduinoCore-API

Missing virtual destructor for `Print` class

Aperta
#256 0 commenti 0 reazioni 0 assegnatari Rivendicata da @andreagilardoni Vedi su GitHub
bug
Lingua principale
C++
Stelle
306
Fork
150
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### Description

Missing virtual destructor - memory leak and UB

### Environment

First found on R4, but it is general

### Current behavior

Warning while compiling sketch, possible UB.

```
packages/arduino/hardware/renesas_uno/1.5.0/libraries/WiFiS3/src/Modem.cpp: In destructor 'ModemClass::~ModemClass()':
packages/arduino/hardware/renesas_uno/1.5.0/libraries/WiFiS3/src/Modem.cpp:27:14: warning: deleting object of polymorphic
class type 'UART' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor]
delete _serial;
```
ModemClass extends Serial which extends Print.

### Expected behavior

no warnings

### Additional information

This class is very base class of all streams and other i/o components.

https://github.com/arduino/ArduinoCore-API/blob/4a02bfc0a924e1fec34c3bb82ffd5dfba7643a0c/api/Print.h#L35

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Leggi la dichiarazione referenziata in api/Print.h e esamina la pull request collegata #218 per comprendere la modifica proposta. Il lavoro è completato quando l’esempio Modem.cpp non produce più l’avviso relativo a un distruttore non virtuale né la relativa preoccupazione riguardo a un comportamento non definito.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp
Ambito
api, embedded-iot
Tipo di issue
Bug
Difficoltà
1/5
Tempo stimato
Meno di un'ora
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
30/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.