]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Fix missing freesem if info data is not available
authorToni Wilen <twilen@winuae.net>
Sun, 16 Nov 2025 11:40:15 +0000 (13:40 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 16 Nov 2025 11:40:15 +0000 (13:40 +0200)
blkdev.cpp

index 8ba8677a420e92af776ebd7547f715e020fd1618..a9507143581cca5a5d95bde9261bd3c724dc9c85 100644 (file)
@@ -1051,17 +1051,23 @@ int sys_command_ismedia (int unitnum, int quick)
 struct device_info *sys_command_info_session (int unitnum, struct device_info *di, int quick, int session)
 {
        struct blkdevstate *st = &state[unitnum];
-       if (failunit (unitnum))
+       if (failunit (unitnum)) {
                return NULL;
-       if (!getsem (unitnum))
+       }
+       if (!getsem (unitnum)) {
                return 0;
-       if (st->device_func->info == NULL)
+       }
+       if (st->device_func->info == NULL) {
+               freesem(unitnum);
                return 0;
+       }
        struct device_info *di2 = st->device_func->info (unitnum, di, quick, -1);
-       if (di2)
+       if (di2) {
                st->type = di2->type;
-       if (di2 && st->delayed)
+       }
+       if (di2 && st->delayed) {
                di2->media_inserted = 0;
+       }
        freesem (unitnum);
        return di2;
 }