arduino / arduino/ArduinoCore-API

Missing virtual destructor for `Print` class

Abierto
#256 0 comentarios 0 reacciones 0 asignados Reclamado por @andreagilardoni Ver en GitHub
bug
Lenguaje dominante
C++
Estrellas
306
Forks
150
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

### 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

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Lee la declaración referenciada en api/Print.h y revisa el pull request enlazado #218 para entender el cambio propuesto. Se considera completado cuando el ejemplo Modem.cpp ya no produce la advertencia sobre un destructor no virtual ni la preocupación asociada por comportamiento indefinido.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cpp
Área
api, embedded-iot
Tipo de issue
Error
Dificultad
1/5
Tiempo estimado
Menos de una hora
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
30/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.