Hello community,

here is the log from the commit of package unrar for openSUSE:Factory:NonFree 
checked in at 2013-12-08 19:50:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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      2013-11-12 
16:37:03.000000000 +0100
+++ /work/SRC/openSUSE:Factory:NonFree/.unrar.new/unrar.changes 2013-12-08 
19:50:05.000000000 +0100
@@ -1,0 +2,14 @@
+Thu Dec  5 03:08:35 UTC 2013 - lazy.k...@opensuse.org
+
+- Update to 5.0.14.
+  * Based on final rar 5.01.
+  * Bugs fixed:
+    + "Test" command could erroneously report damaged data in valid
+      recovery record if only a part of files in RAR 5.0 archive
+      was tested. It did not happen if entire archive contents was
+      tested.
+    + "Test" command erroneously reported errors when verifying RAR
+      4.x Unix symbolic links.
+    + RAR 5.0 'p' (print) command did not display file contents.
+
+-------------------------------------------------------------------

Old:
----
  unrarsrc-5.0.13.tar.gz

New:
----
  unrarsrc-5.0.14.tar.gz

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

Other differences:
------------------
++++++ unrar.spec ++++++
--- /var/tmp/diff_new_pack.mCNp0i/_old  2013-12-08 19:50:06.000000000 +0100
+++ /var/tmp/diff_new_pack.mCNp0i/_new  2013-12-08 19:50:06.000000000 +0100
@@ -18,10 +18,10 @@
 
 # majorversion should match the major version number.
 %define majorversion 5
-%define libsuffix 5_0_13
+%define libsuffix 5_0_14
 
 Name:           unrar
-Version:        5.0.13
+Version:        5.0.14
 Release:        0
 License:        SUSE-NonFree
 Summary:        A program to extract, test, and view RAR archives

++++++ unrarsrc-5.0.13.tar.gz -> unrarsrc-5.0.14.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/arcread.cpp new/unrar/arcread.cpp
--- old/unrar/arcread.cpp       2013-11-12 09:00:45.000000000 +0100
+++ new/unrar/arcread.cpp       2013-12-01 09:10:14.000000000 +0100
@@ -88,7 +88,8 @@
   // If block positions are equal to file size, this is not an error.
   // It can happen when we reached the end of older RAR 1.5 archive,
   // which did not have the end of archive block.
-  if (CurBlockPos>ArcSize || NextBlockPos>ArcSize)
+  if (CurBlockPos>ArcSize || NextBlockPos>ArcSize || 
+      CurBlockPos!=ArcSize && NextBlockPos!=ArcSize && Format==RARFMT50)
   {
 #ifndef SHELL_EXT
     Log(FileName,St(MLogUnexpEOF));
@@ -609,7 +610,11 @@
   // resulting in 2 MB maximum header size, so here we read 4 byte CRC32
   // followed by 3 bytes or less of header size.
   const size_t FirstReadSize=7;
-  Raw.Read(FirstReadSize);
+  if (Raw.Read(FirstReadSize)<FirstReadSize)
+  {
+    UnexpEndArcMsg();
+    return 0;
+  }
 
   ShortBlock.Reset();
   ShortBlock.HeadCRC=Raw.Get4();
@@ -618,7 +623,7 @@
 
   if (BlockSize==0 || SizeBytes==0)
   {
-    UnexpEndArcMsg(); // Incomplete or broken block size field.
+    BrokenHeaderMsg();
     return 0;
   }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/dll.cpp new/unrar/dll.cpp
--- old/unrar/dll.cpp   2013-11-12 09:00:45.000000000 +0100
+++ new/unrar/dll.cpp   2013-12-01 09:10:14.000000000 +0100
@@ -195,7 +195,16 @@
         }
         else
           return ERAR_EOPEN;
-      return(Data->Arc.BrokenHeader ? ERAR_BAD_DATA:ERAR_END_ARCHIVE);
+
+      if (Data->Arc.BrokenHeader)
+        return ERAR_BAD_DATA;
+
+      // Might be necessary if RARSetPassword is still called instead of
+      // open callback for RAR5 archives and if password is invalid.
+      if (Data->Arc.FailedHeaderDecryption)
+        return ERAR_BAD_PASSWORD;
+      
+      return ERAR_END_ARCHIVE;
     }
     FileHeader *hd=&Data->Arc.FileHead;
     if (Data->OpenMode==RAR_OM_LIST && hd->SplitBefore)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/dll.rc new/unrar/dll.rc
--- old/unrar/dll.rc    2013-11-12 08:56:32.000000000 +0100
+++ new/unrar/dll.rc    2013-12-01 09:07:28.000000000 +0100
@@ -2,8 +2,8 @@
 #include <commctrl.h>
 
 VS_VERSION_INFO VERSIONINFO
-FILEVERSION 5, 1, 1, 1047
-PRODUCTVERSION 5, 1, 1, 1047
+FILEVERSION 5, 1, 100, 1066
+PRODUCTVERSION 5, 1, 100, 1066
 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.1.1\0"
-      VALUE "ProductVersion", "5.1.1\0"
+      VALUE "FileVersion", "5.1.0\0"
+      VALUE "ProductVersion", "5.1.0\0"
       VALUE "LegalCopyright", "Copyright � Alexander Roshal 1993-2013\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       2013-11-12 09:00:46.000000000 +0100
+++ new/unrar/extract.cpp       2013-12-01 09:10:14.000000000 +0100
@@ -643,7 +643,7 @@
           // If we already have ERAR_EOPEN as result of missing volume,
           // we should not replace it with less precise ERAR_BAD_DATA.
           if (Cmd->DllError!=ERAR_EOPEN)
-            Cmd->DllError=ERAR_BAD_DATA;
+            Cmd->DllError=WrongPassword ? ERAR_BAD_PASSWORD : ERAR_BAD_DATA;
 #endif
         }
       }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/file.cpp new/unrar/file.cpp
--- old/unrar/file.cpp  2013-11-12 09:00:46.000000000 +0100
+++ new/unrar/file.cpp  2013-12-01 09:10:14.000000000 +0100
@@ -60,17 +60,27 @@
   DWORD LastError;
   if (hNewFile==BAD_HANDLE)
   {
-    // Following CreateFile("\\?\path") call can change the last error code
-    // from "not found" to "access denied" for relative paths like "..\path".
-    // But we need the correct "not found" code to create a new archive
-    // if existing one is not found. So we preserve the code here.
     LastError=GetLastError();
 
     wchar LongName[NM];
     if (GetWinLongPath(Name,LongName,ASIZE(LongName)))
     {
       
hNewFile=CreateFile(LongName,Access,ShareMode,NULL,OPEN_EXISTING,Flags,NULL);
-      LastError=GetLastError();
+
+      // For archive names longer than 260 characters first CreateFile
+      // (without \\?\) fails and sets LastError to 3 (access denied).
+      // We need the correct "file not found" error code to decide
+      // if we create a new archive or quit with "cannot create" error.
+      // So we need to check the error code after \\?\ CreateFile again,
+      // otherwise we'll fail to create new archives with long names.
+      // But we cannot simply assign the new code to LastError,
+      // because it would break "..\arcname.rar" relative names processing.
+      // First CreateFile returns the correct "file not found" code for such
+      // names, but "\\?\" CreateFile returns ERROR_INVALID_NAME treating
+      // dots as a directory name. So we check only for "file not found"
+      // error here and for other errors use the first CreateFile result.
+      if (GetLastError()==ERROR_FILE_NOT_FOUND)
+        LastError=ERROR_FILE_NOT_FOUND;
     }
   }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/version.hpp new/unrar/version.hpp
--- old/unrar/version.hpp       2013-11-12 09:00:46.000000000 +0100
+++ new/unrar/version.hpp       2013-12-01 09:10:14.000000000 +0100
@@ -1,6 +1,6 @@
 #define RARVER_MAJOR     5
 #define RARVER_MINOR     1
-#define RARVER_BETA      1
-#define RARVER_DAY      12
-#define RARVER_MONTH    11
+#define RARVER_BETA      0
+#define RARVER_DAY       1
+#define RARVER_MONTH    12
 #define RARVER_YEAR   2013

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to