From bdbdfde646ff34e6f4c170c3b6aefbc7d118c21b Mon Sep 17 00:00:00 2001 From: Mike Nolan Date: Mon, 1 Jun 2026 06:49:08 -0500 Subject: [PATCH] Fix a security vulerability in crossdump that is supposed to use uint32_t but accidently used uint8_t, set to tessesframework=0.0.5 --- Packaging/Linux/PKGBUILD | 6 +++--- changelog.md | 3 +++ cmake/findtf.cmake | 2 +- cmake/version.cmake | 2 +- src/program_lib/crossdump.cpp | 2 +- src/runtime_methods/console.cpp | 12 +++++++++++- src/runtime_methods/process.cpp | 10 ++++++++++ 7 files changed, 30 insertions(+), 7 deletions(-) diff --git a/Packaging/Linux/PKGBUILD b/Packaging/Linux/PKGBUILD index d3827fa..9f6ba35 100644 --- a/Packaging/Linux/PKGBUILD +++ b/Packaging/Linux/PKGBUILD @@ -1,16 +1,16 @@ # Maintainer: Mike Nolan pkgname=crosslang # '-bzr', '-git', '-hg' or '-svn' -pkgver=0.0.6 +pkgver=0.0.7 pkgrel=1 pkgdesc="" arch=('x86_64' 'powerpc') url="https://git.tesses.org/tesses50/crosslang" license=('GPLv3') groups=() -depends=('mbedtls' 'tessesframework=0.0.4') +depends=('mbedtls' 'tessesframework=0.0.5') makedepends=('git' 'cmake' 'make' 'base-devel' 'wget') # 'bzr', 'git', 'mercurial' or 'subversion' install= -source=('crosslang::git+https://git.tesses.org/tesses50/crosslang') +source=('crosslang::git+https://git.tesses.org/tesses50/crosslang#tag=v0.0.7') noextract=() sha256sums=('SKIP') if [[ -z "$CMAKE_TOOLCHAIN" ]]; then diff --git a/changelog.md b/changelog.md index fa264b6..873a4b1 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,8 @@ # Changelog +## 0.0.7 +Fix a security vulerability in crossdump that is supposed to use uint32_t but accidently used uint8_t, set to tessesframework=0.0.5 + ## 0.0.6 Fix bug with classes, use slim exclusively, add package private data and change rehaul cmake configs diff --git a/cmake/findtf.cmake b/cmake/findtf.cmake index e1438c4..b40787c 100644 --- a/cmake/findtf.cmake +++ b/cmake/findtf.cmake @@ -5,7 +5,7 @@ set(CROSSLANG_STATIC ${TESSESFRAMEWORK_STATIC} CACHE INTERNAL "For CrossLang" FO FetchContent_Declare( TessesFramework GIT_REPOSITORY https://git.tesses.org/tesses50/tessesframework.git - GIT_TAG 25d67053ccebf209f50e6928fad8827164eb4c28 + GIT_TAG 41d503cfb535eca95068b0265418ab2f580264d6 ) set(TESSESFRAMEWORK_ENABLE_EXAMPLES OFF) FetchContent_MakeAvailable(TessesFramework) diff --git a/cmake/version.cmake b/cmake/version.cmake index c00b2bd..e6f223e 100644 --- a/cmake/version.cmake +++ b/cmake/version.cmake @@ -1,3 +1,3 @@ set(CROSSLANG_MAJOR_VERSION 0) set(CROSSLANG_MINOR_VERSION 0) -set(CROSSLANG_PATCH_VERSION 6) +set(CROSSLANG_PATCH_VERSION 7) diff --git a/src/program_lib/crossdump.cpp b/src/program_lib/crossdump.cpp index 98941ae..3b972b4 100644 --- a/src/program_lib/crossdump.cpp +++ b/src/program_lib/crossdump.cpp @@ -94,7 +94,7 @@ void CrossLangDump(std::shared_ptr strm) { uint32_t ents = EnsureInt(strm); - for (uint8_t k = 0; k < ents; k++) { + for (uint32_t k = 0; k < ents; k++) { Ensure(strm, main_header, 1); uint8_t flags = main_header[0]; std::cout << "\t\t/^" << strs.at(EnsureInt(strm)) << "^/" diff --git a/src/runtime_methods/console.cpp b/src/runtime_methods/console.cpp index fdb9206..2bbf7bd 100644 --- a/src/runtime_methods/console.cpp +++ b/src/runtime_methods/console.cpp @@ -3,7 +3,17 @@ #include namespace Tesses::CrossLang { - +TObject Console_setInvertedColors(GCList &ls, std::vector args) { + bool inverted; + if (GetArgument(args, 0, inverted)) { + Tesses::Framework::Console::SetInvertedColors(inverted); + } + return Undefined(); +} +TObject Console_Reset(GCList &ls, std::vector args) { + Tesses::Framework::Console::Reset(); + return Undefined(); +} TObject Console_getIsTTY(GCList &ls, std::vector args) { return Tesses::Framework::Console::IsTTY(); diff --git a/src/runtime_methods/process.cpp b/src/runtime_methods/process.cpp index 3add70e..8b6fc0c 100644 --- a/src/runtime_methods/process.cpp +++ b/src/runtime_methods/process.cpp @@ -280,6 +280,16 @@ void TStd::RegisterProcess(std::shared_ptr gc, TRootEnvironment *env) { } return Undefined(); }); + + process->DeclareFunction( + gc, "ShellFileOrUrl", "Launch file or url in shell", {"urlOrFilename"}, + [](GCList &ls, std::vector args) -> TObject { + std::string fileOrUrl; + if (GetArgument(args, 0, fileOrUrl)) + Tesses::Framework::Platform::ShellFileOrUrl(fileOrUrl); + + return Undefined(); + }); gc->BarrierEnd(); } } // namespace Tesses::CrossLang