diff --git a/net-p2p/clboss/Makefile b/net-p2p/clboss/Makefile index fbf8b77c5b89..2809c459554b 100644 --- a/net-p2p/clboss/Makefile +++ b/net-p2p/clboss/Makefile @@ -1,42 +1,41 @@ PORTNAME= clboss DISTVERSIONPREFIX= v # To build from an arbitrary git commit comment DISTVERSION -DISTVERSION= 0.13.1 +DISTVERSION= 0.13.2 # and uncomment the following two lines (use for example -gf8d8348c where f8d8348c is a commit hash) #DISTVERSION= 0 #DISTVERSIONSUFFIX= -g0673c50e7 +CATEGORIES= net-p2p finance .if defined(DISTVERSIONSUFFIX) PKGNAMESUFFIX= -devel .endif -PORTREVISION= 1 -CATEGORIES= net-p2p finance MAINTAINER= vd@FreeBSD.org -COMMENT= The Core Lightning Node Manager +COMMENT= Core Lightning Node Manager WWW= https://github.com/ZmnSCPxj/clboss LICENSE= MIT BUILD_DEPENDS= autoconf-archive>=0:devel/autoconf-archive LIB_DEPENDS= libcurl.so:ftp/curl \ libev.so:devel/libev RUN_DEPENDS= lightningd:net-p2p/c-lightning USES= autoreconf \ compiler:c11 \ gmake \ libtool \ pkgconfig \ sqlite:3 -CXXFLAGS= -Wno-deprecated-declarations +CXXFLAGS+= -Wno-deprecated-declarations GNU_CONFIGURE= yes USE_GITHUB= yes GH_ACCOUNT= ZmnSCPxj SUB_FILES= pkg-message PLIST_FILES= bin/clboss .include diff --git a/net-p2p/clboss/distinfo b/net-p2p/clboss/distinfo index e7449830c612..6b151863ddd2 100644 --- a/net-p2p/clboss/distinfo +++ b/net-p2p/clboss/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1715154453 -SHA256 (ZmnSCPxj-clboss-v0.13.1_GH0.tar.gz) = 963ea89826b0ccc0bf754f2391b9e7742f01af54821bcfd7bbf651508d0f238f -SIZE (ZmnSCPxj-clboss-v0.13.1_GH0.tar.gz) = 2947982 +TIMESTAMP = 1722513369 +SHA256 (ZmnSCPxj-clboss-v0.13.2_GH0.tar.gz) = 4ed5c894fa00668cc33f2b3cc8bb2a682560e35fd58b2fe5619e8306afb22dfa +SIZE (ZmnSCPxj-clboss-v0.13.2_GH0.tar.gz) = 2947409 diff --git a/net-p2p/clboss/files/patch-624fc32.diff b/net-p2p/clboss/files/patch-624fc32.diff new file mode 100644 index 000000000000..8996396698e6 --- /dev/null +++ b/net-p2p/clboss/files/patch-624fc32.diff @@ -0,0 +1,67 @@ +commit 624fc32db7733b47c8f9fbf5cbab3a40155032b2 (origin/master, origin/HEAD) +Parent: 44476241d101337d89bd9b7c88ec1280039d5167 +Author: Vasil Dimov +AuthorDate: Wed Jun 26 09:46:55 2024 +0200 +Commit: Ken Sedgwick +CommitDate: Wed Jul 24 11:32:53 2024 -0700 + + Avoid vector out of bounds access in ParserExposedBuffer.cpp + + Accessing elements past the size of a `std::vector` is undefined + behavior [1] and is actually checked in recent versions of LLVM + libcxx, which is used in FreeBSD [2]. + + [1] https://en.cppreference.com/w/cpp/container/vector/operator_at: + > Accessing a nonexistent element through this operator is undefined + > behavior. + + [2] https://cgit.freebsd.org/src/tree/contrib/llvm-project/libcxx/include/vector?h=2472e352d80fcf6440fd42fbb16960cc49d05b03#n1393 + +diff --git a/Jsmn/ParserExposedBuffer.cpp b/Jsmn/ParserExposedBuffer.cpp +index 2e42fd6..e6099da 100644 +--- Jsmn/ParserExposedBuffer.cpp ++++ Jsmn/ParserExposedBuffer.cpp +@@ -102,21 +102,24 @@ private: + if (datum_ender.feed(buffer[end_idx++])) + break; + if (end_idx == load_idx) + return nullptr; + } + for (;;) { ++ if (start_idx == end_idx) { ++ return nullptr; ++ } + auto res = jsmn_parse( &base + , &buffer[start_idx], end_idx - start_idx + , &toks[0], toks.size() + ); + if (res > 0) { + assert(base.pos + start_idx <= end_idx); + auto pr = Detail::ParseResult(); +- auto text = std::string( &buffer[start_idx] +- , &buffer[start_idx + base.pos] ++ auto text = std::string( buffer.begin() + start_idx ++ , buffer.begin() + start_idx + base.pos + ); + pr.orig_string = std::move(text); + pr.tokens.resize(res); + for (auto i = 0; i < res; ++i) + pr.tokens[i] = token_convert(toks[i]); + +@@ -162,14 +165,14 @@ private: + * In that case, retain our start_idx instead of + * moving the data. + */ + void move_loaded() { + if ((load_idx - start_idx) > start_idx) + return; +- std::copy( &buffer[start_idx], &buffer[load_idx] +- , &buffer[0] ++ std::copy( buffer.begin() + start_idx, buffer.begin() + load_idx ++ , buffer.begin() + ); + load_idx -= start_idx; + end_idx -= start_idx; + start_idx = 0; + } + public: