diff --git a/firmware/src/dynload/plugin_loader.hh b/firmware/src/dynload/plugin_loader.hh index 98d99b2cb..cc3481059 100644 --- a/firmware/src/dynload/plugin_loader.hh +++ b/firmware/src/dynload/plugin_loader.hh @@ -218,6 +218,7 @@ public: if (so_buffer.size() == 0) { status.error_message = "Error: no plugin .so file found. Plugin is corrupted?"; + status.state = State::Error; break; } diff --git a/firmware/src/fs/asset_drive/untar.cc b/firmware/src/fs/asset_drive/untar.cc index a38f5e20a..5e8b4070c 100644 --- a/firmware/src/fs/asset_drive/untar.cc +++ b/firmware/src/fs/asset_drive/untar.cc @@ -40,6 +40,7 @@ struct TarRaw { DIRECTORY = '5', FIFO = '6', CONTIGUOUS = '7', + EXTENDED_HDR = 'x', }; }; static_assert(sizeof(TarRaw) == 512); @@ -99,12 +100,12 @@ Archive::Archive(std::span filedata) auto type = is_file(buffer.type) ? TarEntry::File : is_dir(buffer.type) ? TarEntry::Dir : TarEntry::Unknown; if (type == TarEntry::Unknown) { - pr_err("Unknown tar entry type (not Dir or File): %d\n", buffer.type); - break; - } + pr_err("Unknown tar entry type (not Dir or File): 0x%x, name = %.100s\n", buffer.type, buffer.name); + } else { - // Cannot use emplace_back with earlier Clang - archive.push_back({.name = entry_name(&buffer), .size = size, .file_offset = offset, .type = type}); + // Cannot use emplace_back with earlier Clang + archive.push_back({.name = entry_name(&buffer), .size = size, .file_offset = offset, .type = type}); + } // skip over data and unfilled block unsigned jump = size;