From a2a3d6b90b18f4ae77ee530835f87d4b0be16c09 Mon Sep 17 00:00:00 2001 From: Nathan Woods Date: Sat, 22 Jul 2017 20:00:56 -0400 Subject: Imgtool: Proper cleanup of floppy object after create/open failure --- src/tools/imgtool/iflopimg.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/tools/imgtool/iflopimg.cpp b/src/tools/imgtool/iflopimg.cpp index 8bc63de9c6b..f6e79e6cd5d 100644 --- a/src/tools/imgtool/iflopimg.cpp +++ b/src/tools/imgtool/iflopimg.cpp @@ -140,6 +140,11 @@ static imgtoolerr_t imgtool_floppy_open_internal(imgtool::image &image, imgtool: done: if (f) delete f; + if (err && fimg->floppy) + { + floppy_close(fimg->floppy); + fimg->floppy = nullptr; + } return err; } @@ -200,6 +205,11 @@ static imgtoolerr_t imgtool_floppy_create(imgtool::image &image, imgtool::stream done: if (f) delete f; + if (err && fimg->floppy) + { + floppy_close(fimg->floppy); + fimg->floppy = nullptr; + } return err; } -- cgit v1.2.3