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.kent@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)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
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+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org