Fixed possible segfault in case of invalid filename based on patch #559.
Since this save/restore list exists in all devices, it's safe to move the new code to the usb_device_c destructor.
This commit is contained in:
parent
d74210b93f
commit
049826aa32
@ -285,6 +285,12 @@ usb_device_c::usb_device_c(void)
|
||||
d.async_mode = 1;
|
||||
}
|
||||
|
||||
usb_device_c::~usb_device_c()
|
||||
{
|
||||
if (d.sr != NULL)
|
||||
d.sr->clear();
|
||||
}
|
||||
|
||||
// Find device with given address
|
||||
usb_device_c* usb_device_c::find_device(Bit8u addr)
|
||||
{
|
||||
|
@ -164,7 +164,7 @@ BOCHSAPI extern bx_usbdev_ctl_c bx_usbdev_ctl;
|
||||
class BOCHSAPI usb_device_c : public logfunctions {
|
||||
public:
|
||||
usb_device_c(void);
|
||||
virtual ~usb_device_c() {}
|
||||
virtual ~usb_device_c();
|
||||
|
||||
virtual bool init() {return d.connected;}
|
||||
virtual const char* get_info() {return NULL;}
|
||||
|
@ -374,7 +374,6 @@ usb_floppy_device_c::usb_floppy_device_c()
|
||||
|
||||
usb_floppy_device_c::~usb_floppy_device_c(void)
|
||||
{
|
||||
d.sr->clear();
|
||||
bx_gui->unregister_statusitem(s.statusbar_id);
|
||||
set_inserted(0);
|
||||
if (s.dev_buffer != NULL)
|
||||
|
@ -736,7 +736,6 @@ usb_hid_device_c::usb_hid_device_c(const char *devname)
|
||||
|
||||
usb_hid_device_c::~usb_hid_device_c(void)
|
||||
{
|
||||
d.sr->clear();
|
||||
if ((d.type == USB_HID_TYPE_MOUSE) ||
|
||||
(d.type == USB_HID_TYPE_TABLET)) {
|
||||
bx_gui->set_mouse_mode_absxy(0);
|
||||
|
@ -226,7 +226,6 @@ usb_hub_device_c::~usb_hub_device_c(void)
|
||||
for (int i = 0; i < hub.n_ports; i++) {
|
||||
remove_device(i);
|
||||
}
|
||||
d.sr->clear();
|
||||
if (SIM->is_wx_selected()) {
|
||||
bx_list_c *usb = (bx_list_c*)SIM->get_param("ports.usb");
|
||||
usb->remove(hub.config->get_name());
|
||||
|
@ -393,7 +393,6 @@ usb_msd_device_c::usb_msd_device_c(const char *devname)
|
||||
|
||||
usb_msd_device_c::~usb_msd_device_c(void)
|
||||
{
|
||||
d.sr->clear();
|
||||
if (s.scsi_dev != NULL)
|
||||
delete s.scsi_dev;
|
||||
if (s.hdimage != NULL) {
|
||||
|
@ -171,7 +171,6 @@ usb_printer_device_c::usb_printer_device_c()
|
||||
|
||||
usb_printer_device_c::~usb_printer_device_c(void)
|
||||
{
|
||||
d.sr->clear();
|
||||
if (s.fp != NULL) {
|
||||
fclose(s.fp);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user