--- nono/host/diskimage.cpp 2026/04/29 17:05:21 1.1.1.4 +++ nono/host/diskimage.cpp 2026/04/29 17:05:43 1.1.1.7 @@ -36,21 +36,20 @@ DiskImage::CreateHandler(const std::stri cow_enable = false; // 今の所 Raw しかない - driver.reset(new DiskImageRaw(pathname)); - if ((bool)driver) { - return true; - } - return false; + try { + driver.reset(new DiskImageRaw(pathname)); + } catch (...) { } + return (bool)driver; } -// このディスクイメージのサイズと書き込み可能かどうかを返す。 +// このディスクイメージが書き込み可能かどうかを返す。 // Open() 前でも動作する。 -bool -DiskImage::GetInfo(off_t *sizep, bool *w_ok) +int +DiskImage::IsWriteable() const { assert((bool)driver); - return driver->GetInfo(sizep, w_ok); + return driver->IsWriteable(); } // オープン @@ -89,7 +88,7 @@ DiskImage::Open(bool read_only, bool cow assert(cowname.empty() == false); cowname = gMainApp.GetVMDir() + "/." + cowname + ".cow"; - cowfd = open(cowname.c_str(), O_RDWR | O_CREAT | O_TRUNC, 0644); + cowfd = open(cowname.c_str(), O_RDWR | O_CREAT | O_TRUNC, 0600); if (cowfd < 0) { return false; }