fix potential fatal errors

This commit is contained in:
MihailRis 2026-10-12 00:30:49 +03:00
parent 6f466d52f2
commit f246619c6b
3 changed files with 10 additions and 2 deletions

View file

@ -133,6 +133,9 @@ static model::Mesh load_mesh(
if (flags == FLAG_ZLIB) {
throw std::runtime_error("compression is not supported yet");
}
if (attributeCount <= 0) {
throw std::runtime_error("mesh must have at least one attribute");
}
std::vector<VertexAttribute> attributes;
for (int i = 0; i < attributeCount; i++) {
attributes.push_back(load_attribute(reader));

View file

@ -152,6 +152,9 @@ std::vector<ubyte> io::read_bytes(const path& filename) {
std::string io::read_string(const path& filename) {
size_t size;
auto bytes = read_bytes(filename, size);
if (bytes == nullptr) {
throw std::runtime_error("could not read file " + filename.string());
}
return std::string((const char*)bytes.get(), size);
}

View file

@ -266,8 +266,10 @@ static int l_peek(lua::State* L, network::Network& network) {
static int l_available(lua::State* L, network::Network& network) {
u64id_t id = lua::tointeger(L, 1);
if (auto connection = network.getConnection(id, false)) {
return lua::pushinteger(L, dynamic_cast<network::TcpConnection*>(connection)->available());
if (auto connection = dynamic_cast<network::ReadableConnection*>(
network.getConnection(id, false)
)) {
return lua::pushinteger(L, connection->available());
}
return 0;