summaryrefslogtreecommitdiffstatshomepage
path: root/src/tools
diff options
context:
space:
mode:
author Nathan Woods <npwoods@mess.org>2017-07-22 20:00:56 -0400
committer Nathan Woods <npwoods@mess.org>2017-07-24 08:18:38 -0400
commita2a3d6b90b18f4ae77ee530835f87d4b0be16c09 (patch)
tree67b45026a45dd27a6a7910c50527b692ffa0d4e2 /src/tools
parent474f7ffd043a34e658ac0c40f5430e386f3be4cf (diff)
Imgtool: Proper cleanup of floppy object after create/open failure
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/imgtool/iflopimg.cpp10
1 files changed, 10 insertions, 0 deletions
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;
}