* [PR PATCH] p7zip: update to 17.03
@ 2021-01-15 12:07 biopsin
2021-01-15 17:41 ` [PR REVIEW] " ahesford
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: biopsin @ 2021-01-15 12:07 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 557 bytes --]
There is a new pull request by biopsin against master on the void-packages repository
https://github.com/biopsin/void-packages patch-2
https://github.com/void-linux/void-packages/pull/27953
p7zip: update to 17.03
Switch distfiles to fork @ https://github.com/jinfeihan57/p7zip
Become maintainer
Change build option to "all2" since "all3" includes "7zr" which is a light version of included "7za"
remove patches
add changelog
tested install : x86_64/-musl
A patch file from https://github.com/void-linux/void-packages/pull/27953.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-patch-2-27953.patch --]
[-- Type: text/x-diff, Size: 20410 bytes --]
From eaec2ba731ed91a04befb85f90f02f00275803d0 Mon Sep 17 00:00:00 2001
From: biopsin <60029989+biopsin@users.noreply.github.com>
Date: Fri, 15 Jan 2021 12:42:47 +0100
Subject: [PATCH] p7zip: update to 17.03
Switch distfiles to fork @ https://github.com/jinfeihan57/p7zip
Become maintainer
Change build option to "all2" since all3 includes 7zr which is a light version of 7za
remove patches
add changelog
---
srcpkgs/p7zip/patches/20-CVE-2018-5996.patch | 221 -------------
srcpkgs/p7zip/patches/30-CVE-2018-10115.patch | 311 ------------------
srcpkgs/p7zip/patches/CVE-2016-9296.patch | 12 -
srcpkgs/p7zip/patches/CVE-2017-17969.patch | 26 --
srcpkgs/p7zip/template | 14 +-
5 files changed, 7 insertions(+), 577 deletions(-)
delete mode 100644 srcpkgs/p7zip/patches/20-CVE-2018-5996.patch
delete mode 100644 srcpkgs/p7zip/patches/30-CVE-2018-10115.patch
delete mode 100644 srcpkgs/p7zip/patches/CVE-2016-9296.patch
delete mode 100644 srcpkgs/p7zip/patches/CVE-2017-17969.patch
diff --git a/srcpkgs/p7zip/patches/20-CVE-2018-5996.patch b/srcpkgs/p7zip/patches/20-CVE-2018-5996.patch
deleted file mode 100644
index 2935ec3657b..00000000000
--- a/srcpkgs/p7zip/patches/20-CVE-2018-5996.patch
+++ /dev/null
@@ -1,221 +0,0 @@
-From: Robert Luberda <robert@debian.org>
-Date: Sun, 28 Jan 2018 23:47:40 +0100
-Subject: CVE-2018-5996
-
-Hopefully fix Memory Corruptions via RAR PPMd (CVE-2018-5996) by
-applying a few changes from 7Zip 18.00-beta.
-
-Bug-Debian: https://bugs.debian.org/#888314
----
- CPP/7zip/Compress/Rar1Decoder.cpp | 13 +++++++++----
- CPP/7zip/Compress/Rar1Decoder.h | 1 +
- CPP/7zip/Compress/Rar2Decoder.cpp | 10 +++++++++-
- CPP/7zip/Compress/Rar2Decoder.h | 1 +
- CPP/7zip/Compress/Rar3Decoder.cpp | 23 ++++++++++++++++++++---
- CPP/7zip/Compress/Rar3Decoder.h | 2 ++
- 6 files changed, 42 insertions(+), 8 deletions(-)
-
-diff --git a/CPP/7zip/Compress/Rar1Decoder.cpp b/CPP/7zip/Compress/Rar1Decoder.cpp
-index 1aaedcc..68030c7 100644
---- CPP/7zip/Compress/Rar1Decoder.cpp
-+++ CPP/7zip/Compress/Rar1Decoder.cpp
-@@ -29,7 +29,7 @@ public:
- };
- */
-
--CDecoder::CDecoder(): m_IsSolid(false) { }
-+CDecoder::CDecoder(): m_IsSolid(false), _errorMode(false) { }
-
- void CDecoder::InitStructures()
- {
-@@ -406,9 +406,14 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- InitData();
- if (!m_IsSolid)
- {
-+ _errorMode = false;
- InitStructures();
- InitHuff();
- }
-+
-+ if (_errorMode)
-+ return S_FALSE;
-+
- if (m_UnpackSize > 0)
- {
- GetFlagsBuf();
-@@ -477,9 +482,9 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress)
- {
- try { return CodeReal(inStream, outStream, inSize, outSize, progress); }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(const CLzOutWindowException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
-+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(const CLzOutWindowException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(...) { _errorMode = true; return S_FALSE; }
- }
-
- STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
-diff --git a/CPP/7zip/Compress/Rar1Decoder.h b/CPP/7zip/Compress/Rar1Decoder.h
-index 630f089..01b606b 100644
---- CPP/7zip/Compress/Rar1Decoder.h
-+++ CPP/7zip/Compress/Rar1Decoder.h
-@@ -39,6 +39,7 @@ public:
-
- Int64 m_UnpackSize;
- bool m_IsSolid;
-+ bool _errorMode;
-
- UInt32 ReadBits(int numBits);
- HRESULT CopyBlock(UInt32 distance, UInt32 len);
-diff --git a/CPP/7zip/Compress/Rar2Decoder.cpp b/CPP/7zip/Compress/Rar2Decoder.cpp
-index b3f2b4b..0580c8d 100644
---- CPP/7zip/Compress/Rar2Decoder.cpp
-+++ CPP/7zip/Compress/Rar2Decoder.cpp
-@@ -80,7 +80,8 @@ static const UInt32 kHistorySize = 1 << 20;
- static const UInt32 kWindowReservSize = (1 << 22) + 256;
-
- CDecoder::CDecoder():
-- m_IsSolid(false)
-+ m_IsSolid(false),
-+ m_TablesOK(false)
- {
- }
-
-@@ -100,6 +101,8 @@ UInt32 CDecoder::ReadBits(unsigned numBits) { return m_InBitStream.ReadBits(numB
-
- bool CDecoder::ReadTables(void)
- {
-+ m_TablesOK = false;
-+
- Byte levelLevels[kLevelTableSize];
- Byte newLevels[kMaxTableSize];
- m_AudioMode = (ReadBits(1) == 1);
-@@ -170,6 +173,8 @@ bool CDecoder::ReadTables(void)
- }
-
- memcpy(m_LastLevels, newLevels, kMaxTableSize);
-+ m_TablesOK = true;
-+
- return true;
- }
-
-@@ -344,6 +349,9 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- return S_FALSE;
- }
-
-+ if (!m_TablesOK)
-+ return S_FALSE;
-+
- UInt64 startPos = m_OutWindowStream.GetProcessedSize();
- while (pos < unPackSize)
- {
-diff --git a/CPP/7zip/Compress/Rar2Decoder.h b/CPP/7zip/Compress/Rar2Decoder.h
-index 3a0535c..0e9005f 100644
---- CPP/7zip/Compress/Rar2Decoder.h
-+++ CPP/7zip/Compress/Rar2Decoder.h
-@@ -139,6 +139,7 @@ class CDecoder :
-
- UInt64 m_PackSize;
- bool m_IsSolid;
-+ bool m_TablesOK;
-
- void InitStructures();
- UInt32 ReadBits(unsigned numBits);
-diff --git a/CPP/7zip/Compress/Rar3Decoder.cpp b/CPP/7zip/Compress/Rar3Decoder.cpp
-index 3bf2513..6cb8a6a 100644
---- CPP/7zip/Compress/Rar3Decoder.cpp
-+++ CPP/7zip/Compress/Rar3Decoder.cpp
-@@ -92,7 +92,8 @@ CDecoder::CDecoder():
- _writtenFileSize(0),
- _vmData(0),
- _vmCode(0),
-- m_IsSolid(false)
-+ m_IsSolid(false),
-+ _errorMode(false)
- {
- Ppmd7_Construct(&_ppmd);
- }
-@@ -545,6 +546,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- return InitPPM();
- }
-
-+ TablesRead = false;
-+ TablesOK = false;
-+
- _lzMode = true;
- PrevAlignBits = 0;
- PrevAlignCount = 0;
-@@ -606,6 +610,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- }
- }
- }
-+ if (InputEofError())
-+ return S_FALSE;
-+
- TablesRead = true;
-
- // original code has check here:
-@@ -623,6 +630,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- RIF(m_LenDecoder.Build(&newLevels[kMainTableSize + kDistTableSize + kAlignTableSize]));
-
- memcpy(m_LastLevels, newLevels, kTablesSizesSum);
-+
-+ TablesOK = true;
-+
- return S_OK;
- }
-
-@@ -824,7 +834,12 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- PpmEscChar = 2;
- PpmError = true;
- InitFilters();
-+ _errorMode = false;
- }
-+
-+ if (_errorMode)
-+ return S_FALSE;
-+
- if (!m_IsSolid || !TablesRead)
- {
- bool keepDecompressing;
-@@ -838,6 +853,8 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- bool keepDecompressing;
- if (_lzMode)
- {
-+ if (!TablesOK)
-+ return S_FALSE;
- RINOK(DecodeLZ(keepDecompressing))
- }
- else
-@@ -901,8 +918,8 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- _unpackSize = outSize ? *outSize : (UInt64)(Int64)-1;
- return CodeReal(progress);
- }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
-+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(...) { _errorMode = true; return S_FALSE; }
- // CNewException is possible here. But probably CNewException is caused
- // by error in data stream.
- }
-diff --git a/CPP/7zip/Compress/Rar3Decoder.h b/CPP/7zip/Compress/Rar3Decoder.h
-index c130cec..2f72d7d 100644
---- CPP/7zip/Compress/Rar3Decoder.h
-+++ CPP/7zip/Compress/Rar3Decoder.h
-@@ -192,6 +192,7 @@ class CDecoder:
- UInt32 _lastFilter;
-
- bool m_IsSolid;
-+ bool _errorMode;
-
- bool _lzMode;
- bool _unsupportedFilter;
-@@ -200,6 +201,7 @@ class CDecoder:
- UInt32 PrevAlignCount;
-
- bool TablesRead;
-+ bool TablesOK;
-
- CPpmd7 _ppmd;
- int PpmEscChar;
diff --git a/srcpkgs/p7zip/patches/30-CVE-2018-10115.patch b/srcpkgs/p7zip/patches/30-CVE-2018-10115.patch
deleted file mode 100644
index 1941ab469fa..00000000000
--- a/srcpkgs/p7zip/patches/30-CVE-2018-10115.patch
+++ /dev/null
@@ -1,311 +0,0 @@
-From: Robert Luberda <robert@debian.org>
-Date: Tue, 29 May 2018 23:59:09 +0200
-Subject: Fix CVE-2018-10115
-
-Apply "patch" taken from https://landave.io/files/patch_7zip_CVE-2018-10115.txt
-
-
-Bugs-Debian: https://bugs.debian.org/897674
----
- CPP/7zip/Compress/Rar1Decoder.cpp | 16 +++++++++++-----
- CPP/7zip/Compress/Rar1Decoder.h | 3 ++-
- CPP/7zip/Compress/Rar2Decoder.cpp | 17 +++++++++++++----
- CPP/7zip/Compress/Rar2Decoder.h | 3 ++-
- CPP/7zip/Compress/Rar3Decoder.cpp | 19 +++++++++++++++----
- CPP/7zip/Compress/Rar3Decoder.h | 3 ++-
- CPP/7zip/Compress/Rar5Decoder.cpp | 8 ++++++++
- CPP/7zip/Compress/Rar5Decoder.h | 1 +
- 8 files changed, 54 insertions(+), 16 deletions(-)
-
-diff --git a/CPP/7zip/Compress/Rar1Decoder.cpp b/CPP/7zip/Compress/Rar1Decoder.cpp
-index 68030c7..8c890c8 100644
---- CPP/7zip/Compress/Rar1Decoder.cpp
-+++ CPP/7zip/Compress/Rar1Decoder.cpp
-@@ -29,7 +29,7 @@ public:
- };
- */
-
--CDecoder::CDecoder(): m_IsSolid(false), _errorMode(false) { }
-+CDecoder::CDecoder(): _isSolid(false), _solidAllowed(false), _errorMode(false) { }
-
- void CDecoder::InitStructures()
- {
-@@ -345,7 +345,7 @@ void CDecoder::GetFlagsBuf()
-
- void CDecoder::InitData()
- {
-- if (!m_IsSolid)
-+ if (!_isSolid)
- {
- AvrPlcB = AvrLn1 = AvrLn2 = AvrLn3 = NumHuf = Buf60 = 0;
- AvrPlc = 0x3500;
-@@ -391,6 +391,11 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- if (inSize == NULL || outSize == NULL)
- return E_INVALIDARG;
-
-+ if (_isSolid && !_solidAllowed)
-+ return S_FALSE;
-+
-+ _solidAllowed = false;
-+
- if (!m_OutWindowStream.Create(kHistorySize))
- return E_OUTOFMEMORY;
- if (!m_InBitStream.Create(1 << 20))
-@@ -398,13 +403,13 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
-
- m_UnpackSize = (Int64)*outSize;
- m_OutWindowStream.SetStream(outStream);
-- m_OutWindowStream.Init(m_IsSolid);
-+ m_OutWindowStream.Init(_isSolid);
- m_InBitStream.SetStream(inStream);
- m_InBitStream.Init();
-
- // CCoderReleaser coderReleaser(this);
- InitData();
-- if (!m_IsSolid)
-+ if (!_isSolid)
- {
- _errorMode = false;
- InitStructures();
-@@ -475,6 +480,7 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- }
- if (m_UnpackSize < 0)
- return S_FALSE;
-+ _solidAllowed = true;
- return m_OutWindowStream.Flush();
- }
-
-@@ -491,7 +497,7 @@ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
- {
- if (size < 1)
- return E_INVALIDARG;
-- m_IsSolid = ((data[0] & 1) != 0);
-+ _isSolid = ((data[0] & 1) != 0);
- return S_OK;
- }
-
-diff --git a/CPP/7zip/Compress/Rar1Decoder.h b/CPP/7zip/Compress/Rar1Decoder.h
-index 01b606b..8abb3a3 100644
---- CPP/7zip/Compress/Rar1Decoder.h
-+++ CPP/7zip/Compress/Rar1Decoder.h
-@@ -38,7 +38,8 @@ public:
- UInt32 LastLength;
-
- Int64 m_UnpackSize;
-- bool m_IsSolid;
-+ bool _isSolid;
-+ bool _solidAllowed;
- bool _errorMode;
-
- UInt32 ReadBits(int numBits);
-diff --git a/CPP/7zip/Compress/Rar2Decoder.cpp b/CPP/7zip/Compress/Rar2Decoder.cpp
-index 0580c8d..be8d842 100644
---- CPP/7zip/Compress/Rar2Decoder.cpp
-+++ CPP/7zip/Compress/Rar2Decoder.cpp
-@@ -80,7 +80,8 @@ static const UInt32 kHistorySize = 1 << 20;
- static const UInt32 kWindowReservSize = (1 << 22) + 256;
-
- CDecoder::CDecoder():
-- m_IsSolid(false),
-+ _isSolid(false),
-+ _solidAllowed(false),
- m_TablesOK(false)
- {
- }
-@@ -320,6 +321,10 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- if (inSize == NULL || outSize == NULL)
- return E_INVALIDARG;
-
-+ if (_isSolid && !_solidAllowed)
-+ return S_FALSE;
-+ _solidAllowed = false;
-+
- if (!m_OutWindowStream.Create(kHistorySize))
- return E_OUTOFMEMORY;
- if (!m_InBitStream.Create(1 << 20))
-@@ -330,12 +335,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- UInt64 pos = 0, unPackSize = *outSize;
-
- m_OutWindowStream.SetStream(outStream);
-- m_OutWindowStream.Init(m_IsSolid);
-+ m_OutWindowStream.Init(_isSolid);
- m_InBitStream.SetStream(inStream);
- m_InBitStream.Init();
-
- // CCoderReleaser coderReleaser(this);
-- if (!m_IsSolid)
-+ if (!_isSolid)
- {
- InitStructures();
- if (unPackSize == 0)
-@@ -343,6 +348,7 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- if (m_InBitStream.GetProcessedSize() + 2 <= m_PackSize) // test it: probably incorrect;
- if (!ReadTables())
- return S_FALSE;
-+ _solidAllowed = true;
- return S_OK;
- }
- if (!ReadTables())
-@@ -386,6 +392,9 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
-
- if (!ReadLastTables())
- return S_FALSE;
-+
-+ _solidAllowed = true;
-+
- return m_OutWindowStream.Flush();
- }
-
-@@ -402,7 +411,7 @@ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
- {
- if (size < 1)
- return E_INVALIDARG;
-- m_IsSolid = ((data[0] & 1) != 0);
-+ _isSolid = ((data[0] & 1) != 0);
- return S_OK;
- }
-
-diff --git a/CPP/7zip/Compress/Rar2Decoder.h b/CPP/7zip/Compress/Rar2Decoder.h
-index 0e9005f..370bce2 100644
---- CPP/7zip/Compress/Rar2Decoder.h
-+++ CPP/7zip/Compress/Rar2Decoder.h
-@@ -138,7 +138,8 @@ class CDecoder :
- Byte m_LastLevels[kMaxTableSize];
-
- UInt64 m_PackSize;
-- bool m_IsSolid;
-+ bool _isSolid;
-+ bool _solidAllowed;
- bool m_TablesOK;
-
- void InitStructures();
-diff --git a/CPP/7zip/Compress/Rar3Decoder.cpp b/CPP/7zip/Compress/Rar3Decoder.cpp
-index 6cb8a6a..7b85833 100644
---- CPP/7zip/Compress/Rar3Decoder.cpp
-+++ CPP/7zip/Compress/Rar3Decoder.cpp
-@@ -92,7 +92,8 @@ CDecoder::CDecoder():
- _writtenFileSize(0),
- _vmData(0),
- _vmCode(0),
-- m_IsSolid(false),
-+ _isSolid(false),
-+ _solidAllowed(false),
- _errorMode(false)
- {
- Ppmd7_Construct(&_ppmd);
-@@ -821,7 +822,7 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- {
- _writtenFileSize = 0;
- _unsupportedFilter = false;
-- if (!m_IsSolid)
-+ if (!_isSolid)
- {
- _lzSize = 0;
- _winPos = 0;
-@@ -840,12 +841,15 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- if (_errorMode)
- return S_FALSE;
-
-- if (!m_IsSolid || !TablesRead)
-+ if (!_isSolid || !TablesRead)
- {
- bool keepDecompressing;
- RINOK(ReadTables(keepDecompressing));
- if (!keepDecompressing)
-+ {
-+ _solidAllowed = true;
- return S_OK;
-+ }
- }
-
- for (;;)
-@@ -870,6 +874,9 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- if (!keepDecompressing)
- break;
- }
-+
-+ _solidAllowed = true;
-+
- RINOK(WriteBuf());
- UInt64 packSize = m_InBitStream.BitDecoder.GetProcessedSize();
- RINOK(progress->SetRatioInfo(&packSize, &_writtenFileSize));
-@@ -890,6 +897,10 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- if (!inSize)
- return E_INVALIDARG;
-
-+ if (_isSolid && !_solidAllowed)
-+ return S_FALSE;
-+ _solidAllowed = false;
-+
- if (!_vmData)
- {
- _vmData = (Byte *)::MidAlloc(kVmDataSizeMax + kVmCodeSizeMax);
-@@ -928,7 +939,7 @@ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
- {
- if (size < 1)
- return E_INVALIDARG;
-- m_IsSolid = ((data[0] & 1) != 0);
-+ _isSolid = ((data[0] & 1) != 0);
- return S_OK;
- }
-
-diff --git a/CPP/7zip/Compress/Rar3Decoder.h b/CPP/7zip/Compress/Rar3Decoder.h
-index 2f72d7d..32c8943 100644
---- CPP/7zip/Compress/Rar3Decoder.h
-+++ CPP/7zip/Compress/Rar3Decoder.h
-@@ -191,7 +191,8 @@ class CDecoder:
- CRecordVector<CTempFilter *> _tempFilters;
- UInt32 _lastFilter;
-
-- bool m_IsSolid;
-+ bool _isSolid;
-+ bool _solidAllowed;
- bool _errorMode;
-
- bool _lzMode;
-diff --git a/CPP/7zip/Compress/Rar5Decoder.cpp b/CPP/7zip/Compress/Rar5Decoder.cpp
-index dc8830f..a826d5a 100644
---- CPP/7zip/Compress/Rar5Decoder.cpp
-+++ CPP/7zip/Compress/Rar5Decoder.cpp
-@@ -72,6 +72,7 @@ CDecoder::CDecoder():
- _writtenFileSize(0),
- _dictSizeLog(0),
- _isSolid(false),
-+ _solidAllowed(false),
- _wasInit(false),
- _inputBuf(NULL)
- {
-@@ -801,7 +802,10 @@ HRESULT CDecoder::CodeReal()
- */
-
- if (res == S_OK)
-+ {
-+ _solidAllowed = true;
- res = res2;
-+ }
-
- if (res == S_OK && _unpackSize_Defined && _writtenFileSize != _unpackSize)
- return S_FALSE;
-@@ -821,6 +825,10 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- {
- try
- {
-+ if (_isSolid && !_solidAllowed)
-+ return S_FALSE;
-+ _solidAllowed = false;
-+
- if (_dictSizeLog >= sizeof(size_t) * 8)
- return E_NOTIMPL;
-
-diff --git a/CPP/7zip/Compress/Rar5Decoder.h b/CPP/7zip/Compress/Rar5Decoder.h
-index b0a4dd1..3db5018 100644
---- CPP/7zip/Compress/Rar5Decoder.h
-+++ CPP/7zip/Compress/Rar5Decoder.h
-@@ -271,6 +271,7 @@ class CDecoder:
- Byte _dictSizeLog;
- bool _tableWasFilled;
- bool _isSolid;
-+ bool _solidAllowed;
- bool _wasInit;
-
- UInt32 _reps[kNumReps];
diff --git a/srcpkgs/p7zip/patches/CVE-2016-9296.patch b/srcpkgs/p7zip/patches/CVE-2016-9296.patch
deleted file mode 100644
index 770929d1633..00000000000
--- a/srcpkgs/p7zip/patches/CVE-2016-9296.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- CPP/7zip/Archive/7z/7zIn.cpp.orig Sun Nov 20 09:29:41 2016
-+++ CPP/7zip/Archive/7z/7zIn.cpp Sun Nov 20 09:31:22 2016
-@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedStreams(
- if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
- ThrowIncorrect();
- }
-- HeadersSize += folders.PackPositions[folders.NumPackStreams];
-+ if (folders.PackPositions)
-+ HeadersSize += folders.PackPositions[folders.NumPackStreams];
- return S_OK;
- }
-
diff --git a/srcpkgs/p7zip/patches/CVE-2017-17969.patch b/srcpkgs/p7zip/patches/CVE-2017-17969.patch
deleted file mode 100644
index c5487304c45..00000000000
--- a/srcpkgs/p7zip/patches/CVE-2017-17969.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: =?utf-8?q?Antoine_Beaupr=C3=A9?= <anarcat@debian.org>
-Date: Sun, 28 Jan 2018 21:19:50 +0100
-Subject: backport of the CVE-2017-17969 fix from 7zip 18.00-beta
-
----
- CPP/7zip/Compress/ShrinkDecoder.cpp | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/CPP/7zip/Compress/ShrinkDecoder.cpp b/CPP/7zip/Compress/ShrinkDecoder.cpp
-index 80b7e67..4acdce5 100644
---- CPP/7zip/Compress/ShrinkDecoder.cpp
-+++ CPP/7zip/Compress/ShrinkDecoder.cpp
-@@ -121,7 +121,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- {
- _stack[i++] = _suffixes[cur];
- cur = _parents[cur];
-- }
-+ if (i >= kNumItems)
-+ break;
-+ }
-+
-+ if (i >= kNumItems)
-+ break;
-
- _stack[i++] = (Byte)cur;
- lastChar2 = (Byte)cur;
diff --git a/srcpkgs/p7zip/template b/srcpkgs/p7zip/template
index 54e901f5102..0894e4a8bc3 100644
--- a/srcpkgs/p7zip/template
+++ b/srcpkgs/p7zip/template
@@ -1,15 +1,15 @@
# Template file for 'p7zip'
pkgname=p7zip
-version=16.02
-revision=5
-wrksrc="${pkgname}_${version}"
+version=17.03
+revision=1
hostmakedepends="yasm nasm"
short_desc="Command-line version of the 7zip compressed file archive"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="biopsin <biopsin@teknik.io>"
license="LGPL-2.1-or-later"
homepage="http://p7zip.sourceforge.net/"
-distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}_${version}_src_all.tar.bz2"
-checksum=5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f
+changelog="https://github.com/jinfeihan57/p7zip/blob/master/ChangeLog"
+distfiles="https://github.com/jinfeihan57/p7zip/archive/v${version}.tar.gz"
+checksum=bb4b9b21584c0e076e0b4b2705af0dbe7ac19d378aa7f09a79da33a5b3293187
do_configure() {
case "$XBPS_TARGET_MACHINE" in
@@ -21,7 +21,7 @@ do_configure() {
sed -e "s,gcc,${CC}," -i makefile.machine
}
do_build() {
- make all3 OPTFLAGS="$CXXFLAGS" ${makejobs}
+ make all2 OPTFLAGS="$CXXFLAGS" ${makejobs}
}
do_install() {
make install DEST_DIR="${DESTDIR}" DEST_HOME="/usr" \
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR REVIEW] p7zip: update to 17.03
2021-01-15 12:07 [PR PATCH] p7zip: update to 17.03 biopsin
@ 2021-01-15 17:41 ` ahesford
2021-01-15 17:54 ` ericonr
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: ahesford @ 2021-01-15 17:41 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 324 bytes --]
New review comment by ahesford on void-packages repository
https://github.com/void-linux/void-packages/pull/27953#discussion_r558463575
Comment:
What makes this fork authoritative? This is doubly relevant because the homepage is still p7zip.sourceforge.net, but that site does not appear to direct people to the new fork.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR REVIEW] p7zip: update to 17.03
2021-01-15 12:07 [PR PATCH] p7zip: update to 17.03 biopsin
2021-01-15 17:41 ` [PR REVIEW] " ahesford
@ 2021-01-15 17:54 ` ericonr
2021-01-15 18:07 ` ahesford
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: ericonr @ 2021-01-15 17:54 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 227 bytes --]
New review comment by ericonr on void-packages repository
https://github.com/void-linux/void-packages/pull/27953#discussion_r558473018
Comment:
For the record, the fork itself doesn't try to claim to be an authoritative one.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR REVIEW] p7zip: update to 17.03
2021-01-15 12:07 [PR PATCH] p7zip: update to 17.03 biopsin
2021-01-15 17:41 ` [PR REVIEW] " ahesford
2021-01-15 17:54 ` ericonr
@ 2021-01-15 18:07 ` ahesford
2021-01-15 18:19 ` biopsin
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: ahesford @ 2021-01-15 18:07 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 276 bytes --]
New review comment by ahesford on void-packages repository
https://github.com/void-linux/void-packages/pull/27953#discussion_r558481602
Comment:
Yes, which makes me wonder why this is the preferred fork. Arch uses it, but it would be nice to see the original sanction this.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR REVIEW] p7zip: update to 17.03
2021-01-15 12:07 [PR PATCH] p7zip: update to 17.03 biopsin
` (2 preceding siblings ...)
2021-01-15 18:07 ` ahesford
@ 2021-01-15 18:19 ` biopsin
2021-01-19 9:30 ` [PR REVIEW] [On hold] " biopsin
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: biopsin @ 2021-01-15 18:19 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 202 bytes --]
New review comment by biopsin on void-packages repository
https://github.com/void-linux/void-packages/pull/27953#discussion_r558487656
Comment:
I've forwarded the question to dev, awaiting response..
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR REVIEW] [On hold] p7zip: update to 17.03
2021-01-15 12:07 [PR PATCH] p7zip: update to 17.03 biopsin
` (3 preceding siblings ...)
2021-01-15 18:19 ` biopsin
@ 2021-01-19 9:30 ` biopsin
2021-03-13 12:55 ` leahneukirchen
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: biopsin @ 2021-01-19 9:30 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 614 bytes --]
New review comment by biopsin on void-packages repository
https://github.com/void-linux/void-packages/pull/27953#discussion_r560033400
Comment:
> The p7zip hasn't been updated since 2016 and I can't reach the author of the p7zip.
> Then I contacted Igor Pavlov, the author of the 7zip, who was unable to reach the author of the p7zip.
> So I discussed with the author of 7zip to re-update p7zip. This branch really didn't get authorization from the original author of p7zip (because he can't be reached). Anyone who can contact the author of p7zip please let me know. I'll talk to him about the authorization.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [On hold] p7zip: update to 17.03
2021-01-15 12:07 [PR PATCH] p7zip: update to 17.03 biopsin
` (4 preceding siblings ...)
2021-01-19 9:30 ` [PR REVIEW] [On hold] " biopsin
@ 2021-03-13 12:55 ` leahneukirchen
2021-04-05 10:19 ` [PR PATCH] [Updated] " biopsin
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: leahneukirchen @ 2021-03-13 12:55 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 182 bytes --]
New comment by leahneukirchen on void-packages repository
https://github.com/void-linux/void-packages/pull/27953#issuecomment-798328260
Comment:
I suggest going on with this fork.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR PATCH] [Updated] [On hold] p7zip: update to 17.03
2021-01-15 12:07 [PR PATCH] p7zip: update to 17.03 biopsin
` (5 preceding siblings ...)
2021-03-13 12:55 ` leahneukirchen
@ 2021-04-05 10:19 ` biopsin
2022-01-19 15:43 ` [On hold] p7zip: update to 17.04 biopsin
2022-01-19 15:43 ` [PR PATCH] [Closed]: " biopsin
8 siblings, 0 replies; 10+ messages in thread
From: biopsin @ 2021-04-05 10:19 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 572 bytes --]
There is an updated pull request by biopsin against master on the void-packages repository
https://github.com/biopsin/void-packages patch-2
https://github.com/void-linux/void-packages/pull/27953
[On hold] p7zip: update to 17.03
Switch distfiles to fork @ https://github.com/jinfeihan57/p7zip
Become maintainer
Change build option to "all2" since "all3" includes "7zr" which is a light version of included "7za"
remove patches
add changelog
tested install : x86_64/-musl
A patch file from https://github.com/void-linux/void-packages/pull/27953.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-patch-2-27953.patch --]
[-- Type: text/x-diff, Size: 20221 bytes --]
From 5526c9d91b7816010d04a48f8bb1c7031e106174 Mon Sep 17 00:00:00 2001
From: biopsin <60029989+biopsin@users.noreply.github.com>
Date: Fri, 15 Jan 2021 12:42:47 +0100
Subject: [PATCH] p7zip: update to 17.04
---
srcpkgs/p7zip/patches/20-CVE-2018-5996.patch | 221 -------------
srcpkgs/p7zip/patches/30-CVE-2018-10115.patch | 311 ------------------
srcpkgs/p7zip/patches/CVE-2016-9296.patch | 12 -
srcpkgs/p7zip/patches/CVE-2017-17969.patch | 26 --
srcpkgs/p7zip/template | 14 +-
5 files changed, 7 insertions(+), 577 deletions(-)
delete mode 100644 srcpkgs/p7zip/patches/20-CVE-2018-5996.patch
delete mode 100644 srcpkgs/p7zip/patches/30-CVE-2018-10115.patch
delete mode 100644 srcpkgs/p7zip/patches/CVE-2016-9296.patch
delete mode 100644 srcpkgs/p7zip/patches/CVE-2017-17969.patch
diff --git a/srcpkgs/p7zip/patches/20-CVE-2018-5996.patch b/srcpkgs/p7zip/patches/20-CVE-2018-5996.patch
deleted file mode 100644
index 2935ec3657b4..000000000000
--- a/srcpkgs/p7zip/patches/20-CVE-2018-5996.patch
+++ /dev/null
@@ -1,221 +0,0 @@
-From: Robert Luberda <robert@debian.org>
-Date: Sun, 28 Jan 2018 23:47:40 +0100
-Subject: CVE-2018-5996
-
-Hopefully fix Memory Corruptions via RAR PPMd (CVE-2018-5996) by
-applying a few changes from 7Zip 18.00-beta.
-
-Bug-Debian: https://bugs.debian.org/#888314
----
- CPP/7zip/Compress/Rar1Decoder.cpp | 13 +++++++++----
- CPP/7zip/Compress/Rar1Decoder.h | 1 +
- CPP/7zip/Compress/Rar2Decoder.cpp | 10 +++++++++-
- CPP/7zip/Compress/Rar2Decoder.h | 1 +
- CPP/7zip/Compress/Rar3Decoder.cpp | 23 ++++++++++++++++++++---
- CPP/7zip/Compress/Rar3Decoder.h | 2 ++
- 6 files changed, 42 insertions(+), 8 deletions(-)
-
-diff --git a/CPP/7zip/Compress/Rar1Decoder.cpp b/CPP/7zip/Compress/Rar1Decoder.cpp
-index 1aaedcc..68030c7 100644
---- CPP/7zip/Compress/Rar1Decoder.cpp
-+++ CPP/7zip/Compress/Rar1Decoder.cpp
-@@ -29,7 +29,7 @@ public:
- };
- */
-
--CDecoder::CDecoder(): m_IsSolid(false) { }
-+CDecoder::CDecoder(): m_IsSolid(false), _errorMode(false) { }
-
- void CDecoder::InitStructures()
- {
-@@ -406,9 +406,14 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- InitData();
- if (!m_IsSolid)
- {
-+ _errorMode = false;
- InitStructures();
- InitHuff();
- }
-+
-+ if (_errorMode)
-+ return S_FALSE;
-+
- if (m_UnpackSize > 0)
- {
- GetFlagsBuf();
-@@ -477,9 +482,9 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress)
- {
- try { return CodeReal(inStream, outStream, inSize, outSize, progress); }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(const CLzOutWindowException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
-+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(const CLzOutWindowException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(...) { _errorMode = true; return S_FALSE; }
- }
-
- STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
-diff --git a/CPP/7zip/Compress/Rar1Decoder.h b/CPP/7zip/Compress/Rar1Decoder.h
-index 630f089..01b606b 100644
---- CPP/7zip/Compress/Rar1Decoder.h
-+++ CPP/7zip/Compress/Rar1Decoder.h
-@@ -39,6 +39,7 @@ public:
-
- Int64 m_UnpackSize;
- bool m_IsSolid;
-+ bool _errorMode;
-
- UInt32 ReadBits(int numBits);
- HRESULT CopyBlock(UInt32 distance, UInt32 len);
-diff --git a/CPP/7zip/Compress/Rar2Decoder.cpp b/CPP/7zip/Compress/Rar2Decoder.cpp
-index b3f2b4b..0580c8d 100644
---- CPP/7zip/Compress/Rar2Decoder.cpp
-+++ CPP/7zip/Compress/Rar2Decoder.cpp
-@@ -80,7 +80,8 @@ static const UInt32 kHistorySize = 1 << 20;
- static const UInt32 kWindowReservSize = (1 << 22) + 256;
-
- CDecoder::CDecoder():
-- m_IsSolid(false)
-+ m_IsSolid(false),
-+ m_TablesOK(false)
- {
- }
-
-@@ -100,6 +101,8 @@ UInt32 CDecoder::ReadBits(unsigned numBits) { return m_InBitStream.ReadBits(numB
-
- bool CDecoder::ReadTables(void)
- {
-+ m_TablesOK = false;
-+
- Byte levelLevels[kLevelTableSize];
- Byte newLevels[kMaxTableSize];
- m_AudioMode = (ReadBits(1) == 1);
-@@ -170,6 +173,8 @@ bool CDecoder::ReadTables(void)
- }
-
- memcpy(m_LastLevels, newLevels, kMaxTableSize);
-+ m_TablesOK = true;
-+
- return true;
- }
-
-@@ -344,6 +349,9 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- return S_FALSE;
- }
-
-+ if (!m_TablesOK)
-+ return S_FALSE;
-+
- UInt64 startPos = m_OutWindowStream.GetProcessedSize();
- while (pos < unPackSize)
- {
-diff --git a/CPP/7zip/Compress/Rar2Decoder.h b/CPP/7zip/Compress/Rar2Decoder.h
-index 3a0535c..0e9005f 100644
---- CPP/7zip/Compress/Rar2Decoder.h
-+++ CPP/7zip/Compress/Rar2Decoder.h
-@@ -139,6 +139,7 @@ class CDecoder :
-
- UInt64 m_PackSize;
- bool m_IsSolid;
-+ bool m_TablesOK;
-
- void InitStructures();
- UInt32 ReadBits(unsigned numBits);
-diff --git a/CPP/7zip/Compress/Rar3Decoder.cpp b/CPP/7zip/Compress/Rar3Decoder.cpp
-index 3bf2513..6cb8a6a 100644
---- CPP/7zip/Compress/Rar3Decoder.cpp
-+++ CPP/7zip/Compress/Rar3Decoder.cpp
-@@ -92,7 +92,8 @@ CDecoder::CDecoder():
- _writtenFileSize(0),
- _vmData(0),
- _vmCode(0),
-- m_IsSolid(false)
-+ m_IsSolid(false),
-+ _errorMode(false)
- {
- Ppmd7_Construct(&_ppmd);
- }
-@@ -545,6 +546,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- return InitPPM();
- }
-
-+ TablesRead = false;
-+ TablesOK = false;
-+
- _lzMode = true;
- PrevAlignBits = 0;
- PrevAlignCount = 0;
-@@ -606,6 +610,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- }
- }
- }
-+ if (InputEofError())
-+ return S_FALSE;
-+
- TablesRead = true;
-
- // original code has check here:
-@@ -623,6 +630,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- RIF(m_LenDecoder.Build(&newLevels[kMainTableSize + kDistTableSize + kAlignTableSize]));
-
- memcpy(m_LastLevels, newLevels, kTablesSizesSum);
-+
-+ TablesOK = true;
-+
- return S_OK;
- }
-
-@@ -824,7 +834,12 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- PpmEscChar = 2;
- PpmError = true;
- InitFilters();
-+ _errorMode = false;
- }
-+
-+ if (_errorMode)
-+ return S_FALSE;
-+
- if (!m_IsSolid || !TablesRead)
- {
- bool keepDecompressing;
-@@ -838,6 +853,8 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- bool keepDecompressing;
- if (_lzMode)
- {
-+ if (!TablesOK)
-+ return S_FALSE;
- RINOK(DecodeLZ(keepDecompressing))
- }
- else
-@@ -901,8 +918,8 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- _unpackSize = outSize ? *outSize : (UInt64)(Int64)-1;
- return CodeReal(progress);
- }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
-+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(...) { _errorMode = true; return S_FALSE; }
- // CNewException is possible here. But probably CNewException is caused
- // by error in data stream.
- }
-diff --git a/CPP/7zip/Compress/Rar3Decoder.h b/CPP/7zip/Compress/Rar3Decoder.h
-index c130cec..2f72d7d 100644
---- CPP/7zip/Compress/Rar3Decoder.h
-+++ CPP/7zip/Compress/Rar3Decoder.h
-@@ -192,6 +192,7 @@ class CDecoder:
- UInt32 _lastFilter;
-
- bool m_IsSolid;
-+ bool _errorMode;
-
- bool _lzMode;
- bool _unsupportedFilter;
-@@ -200,6 +201,7 @@ class CDecoder:
- UInt32 PrevAlignCount;
-
- bool TablesRead;
-+ bool TablesOK;
-
- CPpmd7 _ppmd;
- int PpmEscChar;
diff --git a/srcpkgs/p7zip/patches/30-CVE-2018-10115.patch b/srcpkgs/p7zip/patches/30-CVE-2018-10115.patch
deleted file mode 100644
index 1941ab469fab..000000000000
--- a/srcpkgs/p7zip/patches/30-CVE-2018-10115.patch
+++ /dev/null
@@ -1,311 +0,0 @@
-From: Robert Luberda <robert@debian.org>
-Date: Tue, 29 May 2018 23:59:09 +0200
-Subject: Fix CVE-2018-10115
-
-Apply "patch" taken from https://landave.io/files/patch_7zip_CVE-2018-10115.txt
-
-
-Bugs-Debian: https://bugs.debian.org/897674
----
- CPP/7zip/Compress/Rar1Decoder.cpp | 16 +++++++++++-----
- CPP/7zip/Compress/Rar1Decoder.h | 3 ++-
- CPP/7zip/Compress/Rar2Decoder.cpp | 17 +++++++++++++----
- CPP/7zip/Compress/Rar2Decoder.h | 3 ++-
- CPP/7zip/Compress/Rar3Decoder.cpp | 19 +++++++++++++++----
- CPP/7zip/Compress/Rar3Decoder.h | 3 ++-
- CPP/7zip/Compress/Rar5Decoder.cpp | 8 ++++++++
- CPP/7zip/Compress/Rar5Decoder.h | 1 +
- 8 files changed, 54 insertions(+), 16 deletions(-)
-
-diff --git a/CPP/7zip/Compress/Rar1Decoder.cpp b/CPP/7zip/Compress/Rar1Decoder.cpp
-index 68030c7..8c890c8 100644
---- CPP/7zip/Compress/Rar1Decoder.cpp
-+++ CPP/7zip/Compress/Rar1Decoder.cpp
-@@ -29,7 +29,7 @@ public:
- };
- */
-
--CDecoder::CDecoder(): m_IsSolid(false), _errorMode(false) { }
-+CDecoder::CDecoder(): _isSolid(false), _solidAllowed(false), _errorMode(false) { }
-
- void CDecoder::InitStructures()
- {
-@@ -345,7 +345,7 @@ void CDecoder::GetFlagsBuf()
-
- void CDecoder::InitData()
- {
-- if (!m_IsSolid)
-+ if (!_isSolid)
- {
- AvrPlcB = AvrLn1 = AvrLn2 = AvrLn3 = NumHuf = Buf60 = 0;
- AvrPlc = 0x3500;
-@@ -391,6 +391,11 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- if (inSize == NULL || outSize == NULL)
- return E_INVALIDARG;
-
-+ if (_isSolid && !_solidAllowed)
-+ return S_FALSE;
-+
-+ _solidAllowed = false;
-+
- if (!m_OutWindowStream.Create(kHistorySize))
- return E_OUTOFMEMORY;
- if (!m_InBitStream.Create(1 << 20))
-@@ -398,13 +403,13 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
-
- m_UnpackSize = (Int64)*outSize;
- m_OutWindowStream.SetStream(outStream);
-- m_OutWindowStream.Init(m_IsSolid);
-+ m_OutWindowStream.Init(_isSolid);
- m_InBitStream.SetStream(inStream);
- m_InBitStream.Init();
-
- // CCoderReleaser coderReleaser(this);
- InitData();
-- if (!m_IsSolid)
-+ if (!_isSolid)
- {
- _errorMode = false;
- InitStructures();
-@@ -475,6 +480,7 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- }
- if (m_UnpackSize < 0)
- return S_FALSE;
-+ _solidAllowed = true;
- return m_OutWindowStream.Flush();
- }
-
-@@ -491,7 +497,7 @@ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
- {
- if (size < 1)
- return E_INVALIDARG;
-- m_IsSolid = ((data[0] & 1) != 0);
-+ _isSolid = ((data[0] & 1) != 0);
- return S_OK;
- }
-
-diff --git a/CPP/7zip/Compress/Rar1Decoder.h b/CPP/7zip/Compress/Rar1Decoder.h
-index 01b606b..8abb3a3 100644
---- CPP/7zip/Compress/Rar1Decoder.h
-+++ CPP/7zip/Compress/Rar1Decoder.h
-@@ -38,7 +38,8 @@ public:
- UInt32 LastLength;
-
- Int64 m_UnpackSize;
-- bool m_IsSolid;
-+ bool _isSolid;
-+ bool _solidAllowed;
- bool _errorMode;
-
- UInt32 ReadBits(int numBits);
-diff --git a/CPP/7zip/Compress/Rar2Decoder.cpp b/CPP/7zip/Compress/Rar2Decoder.cpp
-index 0580c8d..be8d842 100644
---- CPP/7zip/Compress/Rar2Decoder.cpp
-+++ CPP/7zip/Compress/Rar2Decoder.cpp
-@@ -80,7 +80,8 @@ static const UInt32 kHistorySize = 1 << 20;
- static const UInt32 kWindowReservSize = (1 << 22) + 256;
-
- CDecoder::CDecoder():
-- m_IsSolid(false),
-+ _isSolid(false),
-+ _solidAllowed(false),
- m_TablesOK(false)
- {
- }
-@@ -320,6 +321,10 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- if (inSize == NULL || outSize == NULL)
- return E_INVALIDARG;
-
-+ if (_isSolid && !_solidAllowed)
-+ return S_FALSE;
-+ _solidAllowed = false;
-+
- if (!m_OutWindowStream.Create(kHistorySize))
- return E_OUTOFMEMORY;
- if (!m_InBitStream.Create(1 << 20))
-@@ -330,12 +335,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- UInt64 pos = 0, unPackSize = *outSize;
-
- m_OutWindowStream.SetStream(outStream);
-- m_OutWindowStream.Init(m_IsSolid);
-+ m_OutWindowStream.Init(_isSolid);
- m_InBitStream.SetStream(inStream);
- m_InBitStream.Init();
-
- // CCoderReleaser coderReleaser(this);
-- if (!m_IsSolid)
-+ if (!_isSolid)
- {
- InitStructures();
- if (unPackSize == 0)
-@@ -343,6 +348,7 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- if (m_InBitStream.GetProcessedSize() + 2 <= m_PackSize) // test it: probably incorrect;
- if (!ReadTables())
- return S_FALSE;
-+ _solidAllowed = true;
- return S_OK;
- }
- if (!ReadTables())
-@@ -386,6 +392,9 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
-
- if (!ReadLastTables())
- return S_FALSE;
-+
-+ _solidAllowed = true;
-+
- return m_OutWindowStream.Flush();
- }
-
-@@ -402,7 +411,7 @@ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
- {
- if (size < 1)
- return E_INVALIDARG;
-- m_IsSolid = ((data[0] & 1) != 0);
-+ _isSolid = ((data[0] & 1) != 0);
- return S_OK;
- }
-
-diff --git a/CPP/7zip/Compress/Rar2Decoder.h b/CPP/7zip/Compress/Rar2Decoder.h
-index 0e9005f..370bce2 100644
---- CPP/7zip/Compress/Rar2Decoder.h
-+++ CPP/7zip/Compress/Rar2Decoder.h
-@@ -138,7 +138,8 @@ class CDecoder :
- Byte m_LastLevels[kMaxTableSize];
-
- UInt64 m_PackSize;
-- bool m_IsSolid;
-+ bool _isSolid;
-+ bool _solidAllowed;
- bool m_TablesOK;
-
- void InitStructures();
-diff --git a/CPP/7zip/Compress/Rar3Decoder.cpp b/CPP/7zip/Compress/Rar3Decoder.cpp
-index 6cb8a6a..7b85833 100644
---- CPP/7zip/Compress/Rar3Decoder.cpp
-+++ CPP/7zip/Compress/Rar3Decoder.cpp
-@@ -92,7 +92,8 @@ CDecoder::CDecoder():
- _writtenFileSize(0),
- _vmData(0),
- _vmCode(0),
-- m_IsSolid(false),
-+ _isSolid(false),
-+ _solidAllowed(false),
- _errorMode(false)
- {
- Ppmd7_Construct(&_ppmd);
-@@ -821,7 +822,7 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- {
- _writtenFileSize = 0;
- _unsupportedFilter = false;
-- if (!m_IsSolid)
-+ if (!_isSolid)
- {
- _lzSize = 0;
- _winPos = 0;
-@@ -840,12 +841,15 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- if (_errorMode)
- return S_FALSE;
-
-- if (!m_IsSolid || !TablesRead)
-+ if (!_isSolid || !TablesRead)
- {
- bool keepDecompressing;
- RINOK(ReadTables(keepDecompressing));
- if (!keepDecompressing)
-+ {
-+ _solidAllowed = true;
- return S_OK;
-+ }
- }
-
- for (;;)
-@@ -870,6 +874,9 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- if (!keepDecompressing)
- break;
- }
-+
-+ _solidAllowed = true;
-+
- RINOK(WriteBuf());
- UInt64 packSize = m_InBitStream.BitDecoder.GetProcessedSize();
- RINOK(progress->SetRatioInfo(&packSize, &_writtenFileSize));
-@@ -890,6 +897,10 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- if (!inSize)
- return E_INVALIDARG;
-
-+ if (_isSolid && !_solidAllowed)
-+ return S_FALSE;
-+ _solidAllowed = false;
-+
- if (!_vmData)
- {
- _vmData = (Byte *)::MidAlloc(kVmDataSizeMax + kVmCodeSizeMax);
-@@ -928,7 +939,7 @@ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
- {
- if (size < 1)
- return E_INVALIDARG;
-- m_IsSolid = ((data[0] & 1) != 0);
-+ _isSolid = ((data[0] & 1) != 0);
- return S_OK;
- }
-
-diff --git a/CPP/7zip/Compress/Rar3Decoder.h b/CPP/7zip/Compress/Rar3Decoder.h
-index 2f72d7d..32c8943 100644
---- CPP/7zip/Compress/Rar3Decoder.h
-+++ CPP/7zip/Compress/Rar3Decoder.h
-@@ -191,7 +191,8 @@ class CDecoder:
- CRecordVector<CTempFilter *> _tempFilters;
- UInt32 _lastFilter;
-
-- bool m_IsSolid;
-+ bool _isSolid;
-+ bool _solidAllowed;
- bool _errorMode;
-
- bool _lzMode;
-diff --git a/CPP/7zip/Compress/Rar5Decoder.cpp b/CPP/7zip/Compress/Rar5Decoder.cpp
-index dc8830f..a826d5a 100644
---- CPP/7zip/Compress/Rar5Decoder.cpp
-+++ CPP/7zip/Compress/Rar5Decoder.cpp
-@@ -72,6 +72,7 @@ CDecoder::CDecoder():
- _writtenFileSize(0),
- _dictSizeLog(0),
- _isSolid(false),
-+ _solidAllowed(false),
- _wasInit(false),
- _inputBuf(NULL)
- {
-@@ -801,7 +802,10 @@ HRESULT CDecoder::CodeReal()
- */
-
- if (res == S_OK)
-+ {
-+ _solidAllowed = true;
- res = res2;
-+ }
-
- if (res == S_OK && _unpackSize_Defined && _writtenFileSize != _unpackSize)
- return S_FALSE;
-@@ -821,6 +825,10 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- {
- try
- {
-+ if (_isSolid && !_solidAllowed)
-+ return S_FALSE;
-+ _solidAllowed = false;
-+
- if (_dictSizeLog >= sizeof(size_t) * 8)
- return E_NOTIMPL;
-
-diff --git a/CPP/7zip/Compress/Rar5Decoder.h b/CPP/7zip/Compress/Rar5Decoder.h
-index b0a4dd1..3db5018 100644
---- CPP/7zip/Compress/Rar5Decoder.h
-+++ CPP/7zip/Compress/Rar5Decoder.h
-@@ -271,6 +271,7 @@ class CDecoder:
- Byte _dictSizeLog;
- bool _tableWasFilled;
- bool _isSolid;
-+ bool _solidAllowed;
- bool _wasInit;
-
- UInt32 _reps[kNumReps];
diff --git a/srcpkgs/p7zip/patches/CVE-2016-9296.patch b/srcpkgs/p7zip/patches/CVE-2016-9296.patch
deleted file mode 100644
index 770929d1633b..000000000000
--- a/srcpkgs/p7zip/patches/CVE-2016-9296.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- CPP/7zip/Archive/7z/7zIn.cpp.orig Sun Nov 20 09:29:41 2016
-+++ CPP/7zip/Archive/7z/7zIn.cpp Sun Nov 20 09:31:22 2016
-@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedStreams(
- if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
- ThrowIncorrect();
- }
-- HeadersSize += folders.PackPositions[folders.NumPackStreams];
-+ if (folders.PackPositions)
-+ HeadersSize += folders.PackPositions[folders.NumPackStreams];
- return S_OK;
- }
-
diff --git a/srcpkgs/p7zip/patches/CVE-2017-17969.patch b/srcpkgs/p7zip/patches/CVE-2017-17969.patch
deleted file mode 100644
index c5487304c452..000000000000
--- a/srcpkgs/p7zip/patches/CVE-2017-17969.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: =?utf-8?q?Antoine_Beaupr=C3=A9?= <anarcat@debian.org>
-Date: Sun, 28 Jan 2018 21:19:50 +0100
-Subject: backport of the CVE-2017-17969 fix from 7zip 18.00-beta
-
----
- CPP/7zip/Compress/ShrinkDecoder.cpp | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/CPP/7zip/Compress/ShrinkDecoder.cpp b/CPP/7zip/Compress/ShrinkDecoder.cpp
-index 80b7e67..4acdce5 100644
---- CPP/7zip/Compress/ShrinkDecoder.cpp
-+++ CPP/7zip/Compress/ShrinkDecoder.cpp
-@@ -121,7 +121,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- {
- _stack[i++] = _suffixes[cur];
- cur = _parents[cur];
-- }
-+ if (i >= kNumItems)
-+ break;
-+ }
-+
-+ if (i >= kNumItems)
-+ break;
-
- _stack[i++] = (Byte)cur;
- lastChar2 = (Byte)cur;
diff --git a/srcpkgs/p7zip/template b/srcpkgs/p7zip/template
index 54e901f51029..722fb7e1676a 100644
--- a/srcpkgs/p7zip/template
+++ b/srcpkgs/p7zip/template
@@ -1,15 +1,15 @@
# Template file for 'p7zip'
pkgname=p7zip
-version=16.02
-revision=5
-wrksrc="${pkgname}_${version}"
+version=17.04
+revision=1
hostmakedepends="yasm nasm"
short_desc="Command-line version of the 7zip compressed file archive"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="biopsin <biopsin@teknik.io>"
license="LGPL-2.1-or-later"
homepage="http://p7zip.sourceforge.net/"
-distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}_${version}_src_all.tar.bz2"
-checksum=5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f
+changelog="https://github.com/jinfeihan57/p7zip/blob/master/ChangeLog"
+distfiles="https://github.com/jinfeihan57/p7zip/archive/v${version}.tar.gz"
+checksum=ea029a2e21d2d6ad0a156f6679bd66836204aa78148a4c5e498fe682e77127ef
do_configure() {
case "$XBPS_TARGET_MACHINE" in
@@ -21,7 +21,7 @@ do_configure() {
sed -e "s,gcc,${CC}," -i makefile.machine
}
do_build() {
- make all3 OPTFLAGS="$CXXFLAGS" ${makejobs}
+ make all2 OPTFLAGS="$CXXFLAGS" ${makejobs}
}
do_install() {
make install DEST_DIR="${DESTDIR}" DEST_HOME="/usr" \
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [On hold] p7zip: update to 17.04
2021-01-15 12:07 [PR PATCH] p7zip: update to 17.03 biopsin
` (6 preceding siblings ...)
2021-04-05 10:19 ` [PR PATCH] [Updated] " biopsin
@ 2022-01-19 15:43 ` biopsin
2022-01-19 15:43 ` [PR PATCH] [Closed]: " biopsin
8 siblings, 0 replies; 10+ messages in thread
From: biopsin @ 2022-01-19 15:43 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 459 bytes --]
New comment by biopsin on void-packages repository
https://github.com/void-linux/void-packages/pull/27953#issuecomment-1016596395
Comment:
My conclusion, since development is stail regarding p7zip and 7-zip has [source for 21.07](https://www.7-zip.org/download.html) and is in active development, there is no point pursuing this at current time.
And also this release has issues like https://github.com/jinfeihan57/p7zip/issues/112#issuecomment-757566333.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR PATCH] [Closed]: [On hold] p7zip: update to 17.04
2021-01-15 12:07 [PR PATCH] p7zip: update to 17.03 biopsin
` (7 preceding siblings ...)
2022-01-19 15:43 ` [On hold] p7zip: update to 17.04 biopsin
@ 2022-01-19 15:43 ` biopsin
8 siblings, 0 replies; 10+ messages in thread
From: biopsin @ 2022-01-19 15:43 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 416 bytes --]
There's a closed pull request on the void-packages repository
[On hold] p7zip: update to 17.04
https://github.com/void-linux/void-packages/pull/27953
Description:
Switch distfiles to fork @ https://github.com/jinfeihan57/p7zip
Become maintainer
Change build option to "all2" since "all3" includes "7zr" which is a light version of included "7za"
remove patches
add changelog
tested install : x86_64/-musl
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-01-19 15:43 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-15 12:07 [PR PATCH] p7zip: update to 17.03 biopsin
2021-01-15 17:41 ` [PR REVIEW] " ahesford
2021-01-15 17:54 ` ericonr
2021-01-15 18:07 ` ahesford
2021-01-15 18:19 ` biopsin
2021-01-19 9:30 ` [PR REVIEW] [On hold] " biopsin
2021-03-13 12:55 ` leahneukirchen
2021-04-05 10:19 ` [PR PATCH] [Updated] " biopsin
2022-01-19 15:43 ` [On hold] p7zip: update to 17.04 biopsin
2022-01-19 15:43 ` [PR PATCH] [Closed]: " biopsin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).