Use the new assert that doesn't crash the program in a release build
This commit is contained in:
parent
013d50d8b6
commit
bfa07cba69
@ -67,7 +67,7 @@ CryDevice::~CryDevice() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
optional<unique_ref<fspp::Node>> CryDevice::Load(const bf::path &path) {
|
optional<unique_ref<fspp::Node>> CryDevice::Load(const bf::path &path) {
|
||||||
assert(path.is_absolute());
|
ASSERT(path.is_absolute(), "Non absolute path given");
|
||||||
|
|
||||||
if (path.parent_path().empty()) {
|
if (path.parent_path().empty()) {
|
||||||
//We are asked to load the root directory '/'.
|
//We are asked to load the root directory '/'.
|
||||||
|
@ -27,7 +27,7 @@ CryFile::~CryFile() {
|
|||||||
|
|
||||||
unique_ref<fspp::OpenFile> CryFile::open(int flags) const {
|
unique_ref<fspp::OpenFile> CryFile::open(int flags) const {
|
||||||
auto blob = LoadBlob();
|
auto blob = LoadBlob();
|
||||||
assert(blob != none);
|
ASSERT(blob != none, "Couldn't load blob");
|
||||||
return make_unique_ref<CryOpenFile>(make_unique_ref<FileBlob>(std::move(*blob)));
|
return make_unique_ref<CryOpenFile>(make_unique_ref<FileBlob>(std::move(*blob)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ namespace cryfs {
|
|||||||
DirBlob::DirBlob(unique_ref<Blob> blob, CryDevice *device) :
|
DirBlob::DirBlob(unique_ref<Blob> blob, CryDevice *device) :
|
||||||
_device(device), _blob(std::move(blob)), _entries(), _changed(false) {
|
_device(device), _blob(std::move(blob)), _entries(), _changed(false) {
|
||||||
//TODO generally everywhere: asserts are bad, because they crash the filesystem. Rather return a fuse error!
|
//TODO generally everywhere: asserts are bad, because they crash the filesystem. Rather return a fuse error!
|
||||||
assert(magicNumber() == MagicNumbers::DIR);
|
ASSERT(magicNumber() == MagicNumbers::DIR, "Loaded blob is not a directory");
|
||||||
_readEntriesFromBlob();
|
_readEntriesFromBlob();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,7 +224,7 @@ void DirBlob::statChild(const Key &key, struct ::stat *result) const {
|
|||||||
result->st_size = SymlinkBlob(std::move(*blob)).target().native().size();
|
result->st_size = SymlinkBlob(std::move(*blob)).target().native().size();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
assert(false);
|
ASSERT(false, "Unknown child type");
|
||||||
}
|
}
|
||||||
//TODO Move ceilDivision to general utils which can be used by cryfs as well
|
//TODO Move ceilDivision to general utils which can be used by cryfs as well
|
||||||
result->st_blocks = blobstore::onblocks::utils::ceilDivision(result->st_size, 512);
|
result->st_blocks = blobstore::onblocks::utils::ceilDivision(result->st_size, 512);
|
||||||
@ -233,7 +233,7 @@ void DirBlob::statChild(const Key &key, struct ::stat *result) const {
|
|||||||
|
|
||||||
void DirBlob::chmodChild(const Key &key, mode_t mode) {
|
void DirBlob::chmodChild(const Key &key, mode_t mode) {
|
||||||
auto found = _findChild(key);
|
auto found = _findChild(key);
|
||||||
assert ((S_ISREG(mode) && S_ISREG(found->mode)) || (S_ISDIR(mode) && S_ISDIR(found->mode)) || (S_ISLNK(mode)));
|
ASSERT ((S_ISREG(mode) && S_ISREG(found->mode)) || (S_ISDIR(mode) && S_ISDIR(found->mode)) || (S_ISLNK(mode)), "Unknown mode in entry");
|
||||||
found->mode = mode;
|
found->mode = mode;
|
||||||
_changed = true;
|
_changed = true;
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ public:
|
|||||||
mode |= S_IFLNK;
|
mode |= S_IFLNK;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
assert((S_ISREG(mode) && type == fspp::Dir::EntryType::FILE) || (S_ISDIR(mode) && type == fspp::Dir::EntryType::DIR) || (S_ISLNK(mode) && type == fspp::Dir::EntryType::SYMLINK));
|
ASSERT((S_ISREG(mode) && type == fspp::Dir::EntryType::FILE) || (S_ISDIR(mode) && type == fspp::Dir::EntryType::DIR) || (S_ISLNK(mode) && type == fspp::Dir::EntryType::SYMLINK), "Unknown mode in entry");
|
||||||
}
|
}
|
||||||
|
|
||||||
fspp::Dir::EntryType type;
|
fspp::Dir::EntryType type;
|
||||||
|
@ -18,7 +18,6 @@ FileBlob::~FileBlob() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
unique_ref<FileBlob> FileBlob::InitializeEmptyFile(unique_ref<Blob> blob) {
|
unique_ref<FileBlob> FileBlob::InitializeEmptyFile(unique_ref<Blob> blob) {
|
||||||
assert(blob.get() != nullptr);
|
|
||||||
blob->resize(1);
|
blob->resize(1);
|
||||||
unsigned char magicNumber = MagicNumbers::FILE;
|
unsigned char magicNumber = MagicNumbers::FILE;
|
||||||
blob->write(&magicNumber, 0, 1);
|
blob->write(&magicNumber, 0, 1);
|
||||||
|
@ -24,7 +24,6 @@ SymlinkBlob::~SymlinkBlob() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
unique_ref<SymlinkBlob> SymlinkBlob::InitializeSymlink(unique_ref<Blob> blob, const bf::path &target) {
|
unique_ref<SymlinkBlob> SymlinkBlob::InitializeSymlink(unique_ref<Blob> blob, const bf::path &target) {
|
||||||
assert(blob.get() != nullptr);
|
|
||||||
string targetStr = target.native();
|
string targetStr = target.native();
|
||||||
blob->resize(1 + targetStr.size());
|
blob->resize(1 + targetStr.size());
|
||||||
unsigned char magicNumber = MagicNumbers::SYMLINK;
|
unsigned char magicNumber = MagicNumbers::SYMLINK;
|
||||||
@ -36,7 +35,7 @@ unique_ref<SymlinkBlob> SymlinkBlob::InitializeSymlink(unique_ref<Blob> blob, co
|
|||||||
void SymlinkBlob::_checkMagicNumber(const Blob &blob) {
|
void SymlinkBlob::_checkMagicNumber(const Blob &blob) {
|
||||||
unsigned char value;
|
unsigned char value;
|
||||||
blob.read(&value, 0, 1);
|
blob.read(&value, 0, 1);
|
||||||
assert(value == MagicNumbers::SYMLINK);
|
ASSERT(value == MagicNumbers::SYMLINK, "Blob is not a symlink blob");
|
||||||
}
|
}
|
||||||
|
|
||||||
bf::path SymlinkBlob::_readTargetFromBlob(const blobstore::Blob &blob) {
|
bf::path SymlinkBlob::_readTargetFromBlob(const blobstore::Blob &blob) {
|
||||||
|
Loading…
Reference in New Issue
Block a user