Hello community, here is the log from the commit of package unrar for openSUSE:Factory:NonFree checked in at 2016-07-24 19:53:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory:NonFree/unrar (Old) and /work/SRC/openSUSE:Factory:NonFree/.unrar.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "unrar" Changes: -------- --- /work/SRC/openSUSE:Factory:NonFree/unrar/unrar.changes 2016-05-31 12:25:37.000000000 +0200 +++ /work/SRC/openSUSE:Factory:NonFree/.unrar.new/unrar.changes 2016-07-24 19:53:58.000000000 +0200 @@ -1,0 +2,6 @@ +Fri Jul 22 06:51:29 UTC 2016 - mplus...@suse.com + +- Update to version 5.4.3: + * No changelog provided. + +------------------------------------------------------------------- Old: ---- unrarsrc-5.4.2.tar.gz New: ---- unrarsrc-5.4.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ unrar.spec ++++++ --- /var/tmp/diff_new_pack.Mdf7an/_old 2016-07-24 19:54:00.000000000 +0200 +++ /var/tmp/diff_new_pack.Mdf7an/_new 2016-07-24 19:54:00.000000000 +0200 @@ -18,10 +18,10 @@ # majorversion should match the major version number. %define majorversion 5 -%define libsuffix 5_4_2 +%define libsuffix 5_4_3 Name: unrar -Version: 5.4.2 +Version: 5.4.3 Release: 0 Summary: A program to extract, test, and view RAR archives License: SUSE-NonFree @@ -87,7 +87,7 @@ %defattr(-,root,root) %doc acknow.txt license.txt readme.txt %{_bindir}/unrar -%doc %{_mandir}/man1/unrar.1* +%{_mandir}/man1/unrar.1%{ext_man} %files -n libunrar%{libsuffix} %defattr(-,root,root) ++++++ unrarsrc-5.4.2.tar.gz -> unrarsrc-5.4.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/blake2s.cpp new/unrar/blake2s.cpp --- old/unrar/blake2s.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/blake2s.cpp 2016-07-21 10:59:36.000000000 +0200 @@ -162,7 +162,7 @@ memcpy( S->buf + left, in, (size_t)inlen ); S->buflen += (size_t)inlen; // Be lazy, do not compress in += inlen; - inlen -= inlen; + inlen = 0; } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/dll.rc new/unrar/dll.rc --- old/unrar/dll.rc 2016-05-30 13:35:51.000000000 +0200 +++ new/unrar/dll.rc 2016-07-21 10:54:58.000000000 +0200 @@ -2,8 +2,8 @@ #include <commctrl.h> VS_VERSION_INFO VERSIONINFO -FILEVERSION 5, 40, 2, 1980 -PRODUCTVERSION 5, 40, 2, 1980 +FILEVERSION 5, 40, 4, 2032 +PRODUCTVERSION 5, 40, 4, 2032 FILEOS VOS__WINDOWS32 FILETYPE VFT_APP { @@ -14,8 +14,8 @@ VALUE "CompanyName", "Alexander Roshal\0" VALUE "ProductName", "RAR decompression library\0" VALUE "FileDescription", "RAR decompression library\0" - VALUE "FileVersion", "5.40.2\0" - VALUE "ProductVersion", "5.40.2\0" + VALUE "FileVersion", "5.40.4\0" + VALUE "ProductVersion", "5.40.4\0" VALUE "LegalCopyright", "Copyright � Alexander Roshal 1993-2016\0" VALUE "OriginalFilename", "Unrar.dll\0" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/hash.cpp new/unrar/hash.cpp --- old/unrar/hash.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/hash.cpp 2016-07-21 10:59:36.000000000 +0200 @@ -41,6 +41,7 @@ DataHash::DataHash() { + blake2ctx=NULL; HashType=HASH_NONE; #ifdef RAR_SMP ThPool=NULL; @@ -54,20 +55,26 @@ #ifdef RAR_SMP DestroyThreadPool(ThPool); #endif - cleandata(&blake2ctx, sizeof(blake2ctx)); cleandata(&CurCRC32, sizeof(CurCRC32)); + if (blake2ctx!=NULL) + { + cleandata(blake2ctx, sizeof(blake2sp_state)); + delete blake2ctx; + } } void DataHash::Init(HASH_TYPE Type,uint MaxThreads) { + if (blake2ctx==NULL) + blake2ctx=new blake2sp_state; HashType=Type; if (Type==HASH_RAR14) CurCRC32=0; if (Type==HASH_CRC32) CurCRC32=0xffffffff; // Initial CRC32 value. if (Type==HASH_BLAKE2) - blake2sp_init( &blake2ctx ); + blake2sp_init(blake2ctx); #ifdef RAR_SMP DataHash::MaxThreads=Min(MaxThreads,MaxHashThreads); #endif @@ -88,10 +95,10 @@ #ifdef RAR_SMP if (MaxThreads>1 && ThPool==NULL) ThPool=CreateThreadPool(); - blake2ctx.ThPool=ThPool; - blake2ctx.MaxThreads=MaxThreads; + blake2ctx->ThPool=ThPool; + blake2ctx->MaxThreads=MaxThreads; #endif - blake2sp_update( &blake2ctx, (byte *)Data, DataSize); + blake2sp_update( blake2ctx, (byte *)Data, DataSize); } } @@ -106,8 +113,8 @@ if (HashType==HASH_BLAKE2) { // Preserve the original context, so we can continue hashing if necessary. - blake2sp_state res=blake2ctx; - blake2sp_final( &res, Result->Digest ); + blake2sp_state res=*blake2ctx; + blake2sp_final(&res,Result->Digest); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/hash.hpp new/unrar/hash.hpp --- old/unrar/hash.hpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/hash.hpp 2016-07-21 10:59:36.000000000 +0200 @@ -29,7 +29,7 @@ private: HASH_TYPE HashType; uint CurCRC32; - blake2sp_state blake2ctx; + blake2sp_state *blake2ctx; #ifdef RAR_SMP ThreadPool *ThPool; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/list.cpp new/unrar/list.cpp --- old/unrar/list.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/list.cpp 2016-07-21 10:59:36.000000000 +0200 @@ -77,7 +77,7 @@ #ifndef SFX_MODULE // Only RAR 1.5 archives store the volume number in end record. if (Arc.EndArcHead.StoreVolNumber && Arc.Format==RARFMT15) - swprintf(VolNumText,ASIZE(VolNumText),L"%.10ls %d",St(MListVolume),Arc.VolNumber+1); + swprintf(VolNumText,ASIZE(VolNumText),L"%.10ls %u",St(MListVolume),Arc.VolNumber+1); #endif if (Technical && ShowService) { @@ -149,9 +149,7 @@ if (Cmd->VolSize!=0 && (Arc.FileHead.SplitAfter || Arc.GetHeaderType()==HEAD_ENDARC && Arc.EndArcHead.NextVolume) && MergeArchive(Arc,NULL,false,Cmd->Command[0])) - { Arc.Seek(0,SEEK_SET); - } else #endif break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/pathfn.cpp new/unrar/pathfn.cpp --- old/unrar/pathfn.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/pathfn.cpp 2016-07-21 10:59:37.000000000 +0200 @@ -733,16 +733,16 @@ char Field[10][6]; - sprintf(Field[0],"%04d",rlt.Year); - sprintf(Field[1],"%02d",rlt.Month); - sprintf(Field[2],"%02d",rlt.Day); - sprintf(Field[3],"%02d",rlt.Hour); - sprintf(Field[4],"%02d",rlt.Minute); - sprintf(Field[5],"%02d",rlt.Second); - sprintf(Field[6],"%02d",CurWeek); - sprintf(Field[7],"%d",WeekDay+1); - sprintf(Field[8],"%03d",rlt.yDay+1); - sprintf(Field[9],"%05d",ArcNumber); + sprintf(Field[0],"%04u",rlt.Year); + sprintf(Field[1],"%02u",rlt.Month); + sprintf(Field[2],"%02u",rlt.Day); + sprintf(Field[3],"%02u",rlt.Hour); + sprintf(Field[4],"%02u",rlt.Minute); + sprintf(Field[5],"%02u",rlt.Second); + sprintf(Field[6],"%02u",(uint)CurWeek); + sprintf(Field[7],"%u",(uint)WeekDay+1); + sprintf(Field[8],"%03u",rlt.yDay+1); + sprintf(Field[9],"%05u",ArcNumber); const wchar *MaskChars=L"YMDHISWAEN"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/rdwrfn.cpp new/unrar/rdwrfn.cpp --- old/unrar/rdwrfn.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/rdwrfn.cpp 2016-07-21 10:59:37.000000000 +0200 @@ -2,6 +2,10 @@ ComprDataIO::ComprDataIO() { +#ifndef RAR_NOCRYPT + Crypt=new CryptData; + Decrypt=new CryptData; +#endif Init(); } @@ -33,6 +37,13 @@ } +ComprDataIO::~ComprDataIO() +{ +#ifndef RAR_NOCRYPT + delete Crypt; + delete Decrypt; +#endif +} @@ -127,7 +138,7 @@ ReadSize=TotalRead; #ifndef RAR_NOCRYPT if (Decryption) - Decrypt.DecryptBlock(Addr,ReadSize); + Decrypt->DecryptBlock(Addr,ReadSize); #endif } Wait(); @@ -273,9 +284,9 @@ { #ifndef RAR_NOCRYPT if (Encrypt) - Encryption=Crypt.SetCryptKeys(true,Method,Password,Salt,InitV,Lg2Cnt,HashKey,PswCheck); + Encryption=Crypt->SetCryptKeys(true,Method,Password,Salt,InitV,Lg2Cnt,HashKey,PswCheck); else - Decryption=Decrypt.SetCryptKeys(false,Method,Password,Salt,InitV,Lg2Cnt,HashKey,PswCheck); + Decryption=Decrypt->SetCryptKeys(false,Method,Password,Salt,InitV,Lg2Cnt,HashKey,PswCheck); #endif } @@ -284,7 +295,7 @@ void ComprDataIO::SetAV15Encryption() { Decryption=true; - Decrypt.SetAV15Encryption(); + Decrypt->SetAV15Encryption(); } #endif @@ -293,7 +304,7 @@ void ComprDataIO::SetCmt13Encryption() { Decryption=true; - Decrypt.SetCmt13Encryption(); + Decrypt->SetCmt13Encryption(); } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/rdwrfn.hpp new/unrar/rdwrfn.hpp --- old/unrar/rdwrfn.hpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/rdwrfn.hpp 2016-07-21 10:59:37.000000000 +0200 @@ -38,8 +38,8 @@ int64 *SubHeadPos; #ifndef RAR_NOCRYPT - CryptData Crypt; - CryptData Decrypt; + CryptData *Crypt; + CryptData *Decrypt; #endif @@ -49,6 +49,7 @@ public: ComprDataIO(); + ~ComprDataIO(); void Init(); int UnpRead(byte *Addr,size_t Count); void UnpWrite(byte *Addr,size_t Count); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/recvol3.cpp new/unrar/recvol3.cpp --- old/unrar/recvol3.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/recvol3.cpp 2016-07-21 10:59:37.000000000 +0200 @@ -42,7 +42,11 @@ { memset(SrcFile,0,sizeof(SrcFile)); if (TestOnly) + { +#ifdef RAR_SMP RSThreadPool=NULL; +#endif + } else { Buf.Alloc(TotalBufferSize); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/recvol5.cpp new/unrar/recvol5.cpp --- old/unrar/recvol5.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/recvol5.cpp 2016-07-21 10:59:37.000000000 +0200 @@ -19,7 +19,11 @@ } if (TestOnly) + { +#ifdef RAR_SMP RecThreadPool=NULL; +#endif + } else { #ifdef RAR_SMP @@ -344,7 +348,11 @@ RSCoder16 RS; if (!RS.Init(DataCount,RecCount,ValidFlags)) + { + delete[] ValidFlags; + delete[] Data; return false; // Should not happen, we check parameter validity above. + } RealReadBuffer=new byte[RecBufferSize+SSE_ALIGNMENT]; byte *ReadBuf=(byte *)ALIGN_VALUE(RealReadBuffer,SSE_ALIGNMENT); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/rs16.cpp new/unrar/rs16.cpp --- old/unrar/rs16.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/rs16.cpp 2016-07-21 10:59:37.000000000 +0200 @@ -215,6 +215,7 @@ } +#if 0 // Multiply matrix to data vector. When encoding, it contains data in Data // and stores error correction codes in Out. When decoding it contains // broken data followed by ECC in Data and stores recovered data to Out. @@ -252,6 +253,7 @@ Out[I] = R; } } +#endif // We update ECC in blocks by applying every data block to all ECC blocks. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/rs16.hpp new/unrar/rs16.hpp --- old/unrar/rs16.hpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/rs16.hpp 2016-07-21 10:59:37.000000000 +0200 @@ -35,7 +35,9 @@ ~RSCoder16(); bool Init(uint DataCount, uint RecCount, bool *ValidityFlags); +#if 0 // We use only UpdateECC now. void Process(const uint *Data, uint *Out); +#endif void UpdateECC(uint DataNum, uint ECCNum, const byte *Data, byte *ECC, size_t BlockSize); }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/smallfn.cpp new/unrar/smallfn.cpp --- old/unrar/smallfn.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/smallfn.cpp 2016-07-21 10:59:37.000000000 +0200 @@ -3,7 +3,7 @@ int ToPercent(int64 N1,int64 N2) { if (N2<N1) - return(100); + return 100; return ToPercentUnlim(N1,N2); } @@ -12,7 +12,7 @@ int ToPercentUnlim(int64 N1,int64 N2) { if (N2==0) - return(0); + return 0; return (int)(N1*100/N2); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/suballoc.cpp new/unrar/suballoc.cpp --- old/unrar/suballoc.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/suballoc.cpp 2016-07-21 10:59:37.000000000 +0200 @@ -66,8 +66,6 @@ } - - void SubAllocator::StopSubAllocator() { if ( SubAllocatorSize ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/suballoc.hpp new/unrar/suballoc.hpp --- old/unrar/suballoc.hpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/suballoc.hpp 2016-07-21 10:59:37.000000000 +0200 @@ -57,7 +57,6 @@ inline void* RemoveNode(int indx); inline uint U2B(int NU); inline void SplitBlock(void* pv,int OldIndx,int NewIndx); - uint GetUsedMemory(); inline void GlueFreeBlocks(); void* AllocUnitsRare(int indx); inline RARPPM_MEM_BLK* MBPtr(RARPPM_MEM_BLK *BasePtr,int Items); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/unpack.cpp new/unrar/unpack.cpp --- old/unrar/unpack.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/unpack.cpp 2016-07-21 10:59:37.000000000 +0200 @@ -319,7 +319,7 @@ // Find the upper limit for current bit field and adjust the bit length // accordingly if necessary. - while (BitField>=Dec->DecodeLen[CurBitLength] && CurBitLength<ASIZE(Dec->DecodeLen)) + while (CurBitLength<ASIZE(Dec->DecodeLen) && BitField>=Dec->DecodeLen[CurBitLength]) CurBitLength++; // Translation of right aligned bit string to bit length. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/unpack30.cpp new/unrar/unpack30.cpp --- old/unrar/unpack30.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/unpack30.cpp 2016-07-21 10:59:37.000000000 +0200 @@ -419,7 +419,10 @@ if (EmptyCount==0) { if (PrgStack.Size()>MAX3_UNPACK_FILTERS) + { + delete StackFilter; return false; + } PrgStack.Add(1); EmptyCount=1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/unpack50mt.cpp new/unrar/unpack50mt.cpp --- old/unrar/unpack50mt.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/unpack50mt.cpp 2016-07-21 10:59:37.000000000 +0200 @@ -43,6 +43,7 @@ { // Typical number of items in RAR blocks does not exceed 0x4000. CurData->DecodedAllocated=0x4100; + // It will be freed in the object destructor, not in this file. CurData->Decoded=(UnpackDecodedItem *)malloc(CurData->DecodedAllocated*sizeof(UnpackDecodedItem)); if (CurData->Decoded==NULL) ErrHandler.MemoryError(); @@ -96,7 +97,6 @@ if (ReadSize>0 && DataSize<TooSmallToProcess) continue; - bool BufferProcessed=false; while (BlockStart<DataSize && !Done) { uint BlockNumber=0,BlockNumberMT=0; @@ -328,9 +328,10 @@ if (D.DecodedSize>D.DecodedAllocated-8) // Filter can use several slots. { D.DecodedAllocated=D.DecodedAllocated*2; - D.Decoded=(UnpackDecodedItem *)realloc(D.Decoded,D.DecodedAllocated*sizeof(UnpackDecodedItem)); - if (D.Decoded==NULL) - ErrHandler.MemoryError(); + void *Decoded=realloc(D.Decoded,D.DecodedAllocated*sizeof(UnpackDecodedItem)); + if (Decoded==NULL) + ErrHandler.MemoryError(); // D.Decoded will be freed in the destructor. + D.Decoded=(UnpackDecodedItem *)Decoded; } UnpackDecodedItem *CurItem=D.Decoded+D.DecodedSize++; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/version.hpp new/unrar/version.hpp --- old/unrar/version.hpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/version.hpp 2016-07-21 10:59:37.000000000 +0200 @@ -1,6 +1,6 @@ #define RARVER_MAJOR 5 #define RARVER_MINOR 40 -#define RARVER_BETA 2 -#define RARVER_DAY 30 -#define RARVER_MONTH 5 +#define RARVER_BETA 4 +#define RARVER_DAY 21 +#define RARVER_MONTH 7 #define RARVER_YEAR 2016 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/win32stm.cpp new/unrar/win32stm.cpp --- old/unrar/win32stm.cpp 2016-05-30 13:38:10.000000000 +0200 +++ new/unrar/win32stm.cpp 2016-07-21 10:59:37.000000000 +0200 @@ -89,9 +89,6 @@ else wcsncpyz(FullName,FileName,ASIZE(FullName)); - byte *Data=&Arc.SubHead.SubData[0]; - size_t DataSize=Arc.SubHead.SubData.Size(); - wchar StreamName[NM]; GetStreamNameNTFS(Arc,StreamName,ASIZE(StreamName)); if (*StreamName!=':')