Hello community,

here is the log from the commit of package unrar for openSUSE:Factory:NonFree 
checked in at 2018-10-02 19:49:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory:NonFree/unrar (Old)
 and      /work/SRC/openSUSE:Factory:NonFree/.unrar.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "unrar"

Tue Oct  2 19:49:39 2018 rev:73 rq:639542 version:5.6.7

Changes:
--------
--- /work/SRC/openSUSE:Factory:NonFree/unrar/unrar.changes      2018-06-29 
22:37:32.205942636 +0200
+++ /work/SRC/openSUSE:Factory:NonFree/.unrar.new/unrar.changes 2018-10-02 
19:49:50.825679713 +0200
@@ -1,0 +2,6 @@
+Tue Oct  2 09:23:09 UTC 2018 - Ismail Dönmez <[email protected]>
+
+- Update to version 5.6.7
+  * No upstream changelog
+
+-------------------------------------------------------------------

Old:
----
  unrarsrc-5.6.5.tar.gz

New:
----
  unrarsrc-5.6.7.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ unrar.spec ++++++
--- /var/tmp/diff_new_pack.OqJYRH/_old  2018-10-02 19:49:51.565678940 +0200
+++ /var/tmp/diff_new_pack.OqJYRH/_new  2018-10-02 19:49:51.565678940 +0200
@@ -18,10 +18,10 @@
 
 # majorversion should match the major version number.
 %define majorversion 5
-%define libsuffix 5_6_5
+%define libsuffix 5_6_7
 
 Name:           unrar
-Version:        5.6.5
+Version:        5.6.7
 Release:        0
 Summary:        A program to extract, test, and view RAR archives
 License:        NonFree

++++++ unrarsrc-5.6.5.tar.gz -> unrarsrc-5.6.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/arcread.cpp new/unrar/arcread.cpp
--- old/unrar/arcread.cpp       2018-06-24 17:10:30.000000000 +0200
+++ new/unrar/arcread.cpp       2018-09-30 20:05:39.000000000 +0200
@@ -566,7 +566,7 @@
     // We repeat the password request only for manually entered passwords
     // and not for -p<pwd>. Wrong password can be intentionally provided
     // in -p<pwd> to not stop batch processing for encrypted archives.
-    bool GlobalPassword=Cmd->Password.IsSet();
+    bool GlobalPassword=Cmd->Password.IsSet() || uiIsGlobalPasswordSet();
 
     while (true) // Repeat the password prompt for wrong passwords.
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/dll.rc new/unrar/dll.rc
--- old/unrar/dll.rc    2018-06-24 17:02:05.000000000 +0200
+++ new/unrar/dll.rc    2018-09-30 20:00:39.000000000 +0200
@@ -2,8 +2,8 @@
 #include <commctrl.h>
 
 VS_VERSION_INFO VERSIONINFO
-FILEVERSION 5, 60, 100, 2736
-PRODUCTVERSION 5, 60, 100, 2736
+FILEVERSION 5, 61, 100, 2834
+PRODUCTVERSION 5, 61, 100, 2834
 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.60.0\0"
-      VALUE "ProductVersion", "5.60.0\0"
+      VALUE "FileVersion", "5.61.0\0"
+      VALUE "ProductVersion", "5.61.0\0"
       VALUE "LegalCopyright", "Copyright � Alexander Roshal 1993-2018\0"
       VALUE "OriginalFilename", "Unrar.dll\0"
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/extract.cpp new/unrar/extract.cpp
--- old/unrar/extract.cpp       2018-06-24 17:10:31.000000000 +0200
+++ new/unrar/extract.cpp       2018-09-30 20:05:41.000000000 +0200
@@ -161,7 +161,7 @@
     // This size is necessary to display the correct total progress indicator.
 
     wchar NextName[NM];
-    wcscpy(NextName,Arc.FileName);
+    wcsncpyz(NextName,Arc.FileName,ASIZE(NextName));
 
     while (true)
     {
@@ -323,6 +323,7 @@
 
     if (wcsicomp(ArcName,CurVolName)!=0 && FileExist(ArcName))
     {
+      wcsncpyz(Cmd->ArcName,ArcName,ASIZE(ArcName)); // For GUI "Delete 
archive after extraction".
       // If first volume name does not match the current name and if such
       // volume name really exists, let's unpack from this first volume.
       Repeat=true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/options.hpp new/unrar/options.hpp
--- old/unrar/options.hpp       2018-06-24 17:10:31.000000000 +0200
+++ new/unrar/options.hpp       2018-09-30 20:05:42.000000000 +0200
@@ -12,11 +12,7 @@
   EXCL_SKIPWHOLEPATH,  // -ep  (exclude the path completely)
   EXCL_BASEPATH,       // -ep1 (exclude the base part of path)
   EXCL_SAVEFULLPATH,   // -ep2 (the full path without the disk letter)
-  EXCL_ABSPATH,        // -ep3 (the full path with the disk letter)
-
-  EXCL_SKIPABSPATH     // Works as EXCL_BASEPATH for fully qualified paths
-                       // and as EXCL_UNCHANGED for relative paths.
-                       // Used by WinRAR GUI only.
+  EXCL_ABSPATH         // -ep3 (the full path with the disk letter)
 };
 
 enum {SOLID_NONE=0,SOLID_NORMAL=1,SOLID_COUNT=2,SOLID_FILEEXT=4,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/qopen.cpp new/unrar/qopen.cpp
--- old/unrar/qopen.cpp 2018-06-24 17:10:31.000000000 +0200
+++ new/unrar/qopen.cpp 2018-09-30 20:05:43.000000000 +0200
@@ -84,7 +84,7 @@
     if (ReadSize==0 || Arc->GetHeaderType()!=HEAD_SERVICE ||
         !Arc->SubHead.CmpName(SUBHEAD_TYPE_QOPEN))
       return;
-    QLHeaderPos=Arc->CurBlockPos;
+    QOHeaderPos=Arc->CurBlockPos;
     RawDataStart=Arc->Tell();
     RawDataSize=Arc->SubHead.UnpSize;
 
@@ -172,7 +172,7 @@
   // archive updating involve several passes. So if we detect that file
   // pointer is moved back, we reload quick open data from beginning.
   if (Method==SEEK_SET && (uint64)Offset<SeekPos && 
(uint64)Offset<LastReadHeaderPos)
-    Load(QLHeaderPos);
+    Load(QOHeaderPos);
 
   if (Method==SEEK_SET)
     SeekPos=Offset;
@@ -250,10 +250,10 @@
     return false;
   }
 
-  // If rest of block data crosses buffer boundary, read it in loop.
-  size_t DataLeft=ReadBufSize-ReadBufPos;
+  // If rest of block data crosses Buf boundary, read it in loop.
   while (SizeToRead>0)
   {
+    size_t DataLeft=ReadBufSize-ReadBufPos;
     size_t CurSizeToRead=Min(DataLeft,(size_t)SizeToRead);
     Raw.Read(Buf+ReadBufPos,CurSizeToRead);
     ReadBufPos+=CurSizeToRead;
@@ -285,6 +285,6 @@
   LastReadHeader.Alloc(HeaderSize);
   Raw.GetB(&LastReadHeader[0],HeaderSize);
   // Calculate the absolute position as offset from quick open service header.
-  LastReadHeaderPos=QLHeaderPos-Offset;
+  LastReadHeaderPos=QOHeaderPos-Offset;
   return true;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/qopen.hpp new/unrar/qopen.hpp
--- old/unrar/qopen.hpp 2018-06-24 17:10:31.000000000 +0200
+++ new/unrar/qopen.hpp 2018-09-30 20:05:43.000000000 +0200
@@ -29,24 +29,24 @@
     QuickOpenItem *ListStart;
     QuickOpenItem *ListEnd;
     
-    byte *Buf;
-    static const size_t MaxBufSize=0x10000; // Must be multiple of 
CRYPT_BLOCK_SIZE.
-    size_t CurBufSize;
+    byte *Buf; // Read quick open data here.
+    static const size_t MaxBufSize=0x10000; // Buf size, must be multiple of 
CRYPT_BLOCK_SIZE.
+    size_t CurBufSize; // Current size of buffered data in write mode.
 #ifndef RAR_NOCRYPT // For shell extension.
     CryptData Crypt;
 #endif
 
     bool Loaded;
-    uint64 QLHeaderPos;
-    uint64 RawDataStart;
-    uint64 RawDataSize;
-    uint64 RawDataPos;
-    size_t ReadBufSize;
-    size_t ReadBufPos;
+    uint64 QOHeaderPos;  // Main QO header position.
+    uint64 RawDataStart; // Start of QO data, just after the main header.
+    uint64 RawDataSize;  // Size of entire QO data.
+    uint64 RawDataPos;   // Current read position in QO data.
+    size_t ReadBufSize;  // Size of Buf data currently read from QO.
+    size_t ReadBufPos;   // Current read position in Buf data.
     Array<byte> LastReadHeader;
     uint64 LastReadHeaderPos;
     uint64 SeekPos;
-    bool UnsyncSeekPos; // QOpen SeekPos does not match an actual file pointer.
+    bool UnsyncSeekPos;  // QOpen SeekPos does not match an actual file 
pointer.
   public:
     QuickOpen();
     ~QuickOpen();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/ui.hpp new/unrar/ui.hpp
--- old/unrar/ui.hpp    2018-06-24 17:10:32.000000000 +0200
+++ new/unrar/ui.hpp    2018-09-30 20:05:45.000000000 +0200
@@ -85,6 +85,7 @@
 
 enum UIPASSWORD_TYPE {UIPASSWORD_GLOBAL,UIPASSWORD_FILE,UIPASSWORD_ARCHIVE};
 bool uiGetPassword(UIPASSWORD_TYPE Type,const wchar *FileName,SecPassword 
*Password);
+bool uiIsGlobalPasswordSet();
 
 enum UIALARM_TYPE {UIALARM_ERROR, UIALARM_INFO, UIALARM_QUESTION};
 void uiAlarm(UIALARM_TYPE Type);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/uiconsole.cpp new/unrar/uiconsole.cpp
--- old/unrar/uiconsole.cpp     2018-06-24 17:10:32.000000000 +0200
+++ new/unrar/uiconsole.cpp     2018-09-30 20:05:45.000000000 +0200
@@ -219,6 +219,7 @@
       break;
     case UIERROR_INVALIDNAME:
       Log(Str[0],St(MInvalidName),Str[1]);
+      mprintf(L"\n"); // Needed when called from 
CmdExtract::ExtractCurrentFile.
       break;
 #ifndef SFX_MODULE
     case UIERROR_NEWRARFORMAT:
@@ -354,6 +355,12 @@
 }
 
 
+bool uiIsGlobalPasswordSet()
+{
+  return false;
+}
+
+
 void uiAlarm(UIALARM_TYPE Type)
 {
   if (uiSoundEnabled)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/uisilent.cpp new/unrar/uisilent.cpp
--- old/unrar/uisilent.cpp      2018-06-24 17:10:32.000000000 +0200
+++ new/unrar/uisilent.cpp      2018-09-30 20:05:45.000000000 +0200
@@ -39,6 +39,12 @@
 }
 
 
+bool uiIsGlobalPasswordSet()
+{
+  return false;
+}
+
+
 void uiAlarm(UIALARM_TYPE Type)
 {
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/unicode.cpp new/unrar/unicode.cpp
--- old/unrar/unicode.cpp       2018-06-24 17:10:32.000000000 +0200
+++ new/unrar/unicode.cpp       2018-09-30 20:05:45.000000000 +0200
@@ -138,6 +138,11 @@
   if (wcschr(Src,(wchar)MappedStringMark)==NULL)
     return false;
 
+  // Seems to be that wcrtomb in some memory analyzing libraries
+  // can produce uninitilized output while reporting success on garbage input.
+  // So we clean the destination to calm analyzers.
+  memset(Dest,0,DestSize);
+  
   Success=true;
   uint SrcPos=0,DestPos=0;
   while (Src[SrcPos]!=0 && DestPos<DestSize-MB_CUR_MAX)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/version.hpp new/unrar/version.hpp
--- old/unrar/version.hpp       2018-06-24 17:10:32.000000000 +0200
+++ new/unrar/version.hpp       2018-09-30 20:05:46.000000000 +0200
@@ -1,6 +1,6 @@
 #define RARVER_MAJOR     5
-#define RARVER_MINOR    60
+#define RARVER_MINOR    61
 #define RARVER_BETA      0
-#define RARVER_DAY      24
-#define RARVER_MONTH     6
+#define RARVER_DAY      30
+#define RARVER_MONTH     9
 #define RARVER_YEAR   2018
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/win32acl.cpp new/unrar/win32acl.cpp
--- old/unrar/win32acl.cpp      2018-06-24 17:10:32.000000000 +0200
+++ new/unrar/win32acl.cpp      2018-09-30 20:05:46.000000000 +0200
@@ -54,7 +54,10 @@
   if (!SetCode)
   {
     uiMsg(UIERROR_ACLSET,Arc.FileName,FileName);
+    DWORD LastError=GetLastError();
     ErrHandler.SysErrMsg();
+    if (LastError==ERROR_ACCESS_DENIED && !IsUserAdmin())
+      uiMsg(UIERROR_NEEDADMIN);
     ErrHandler.SetErrorCode(RARX_WARNING);
   }
 }
@@ -86,7 +89,10 @@
   if (!SetCode)
   {
     uiMsg(UIERROR_ACLSET,Arc.FileName,FileName);
+    DWORD LastError=GetLastError();
     ErrHandler.SysErrMsg();
+    if (LastError==ERROR_ACCESS_DENIED && !IsUserAdmin())
+      uiMsg(UIERROR_NEEDADMIN);
     ErrHandler.SetErrorCode(RARX_WARNING);
   }
 }


Reply via email to