diff options
| author | 2017-07-22 20:00:56 -0400 | |
|---|---|---|
| committer | 2017-07-24 08:18:38 -0400 | |
| commit | a2a3d6b90b18f4ae77ee530835f87d4b0be16c09 (patch) | |
| tree | 67b45026a45dd27a6a7910c50527b692ffa0d4e2 /src/tools | |
| parent | 474f7ffd043a34e658ac0c40f5430e386f3be4cf (diff) | |
Imgtool: Proper cleanup of floppy object after create/open failure
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/imgtool/iflopimg.cpp | 10 |
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; } |
