ArduinoCore-API icon indicating copy to clipboard operation
ArduinoCore-API copied to clipboard

Missing virtual destructor for `Print` class

Open ondra-novak opened this issue 5 months ago • 0 comments

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

ondra-novak avatar Sep 14 '25 15:09 ondra-novak