Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ugrep for openSUSE:Factory checked in at 2023-02-01 16:39:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ugrep (Old)
and /work/SRC/openSUSE:Factory/.ugrep.new.32243 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ugrep"
Wed Feb 1 16:39:38 2023 rev:36 rq:1062391 version:3.9.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/ugrep/ugrep.changes 2023-01-15 17:58:26.318299958 +0100
+++ /work/SRC/openSUSE:Factory/.ugrep.new.32243/ugrep.changes 2023-02-01 16:39:52.077916133 +0100
@@ -1,0 +2,10 @@
+Wed Feb 1 07:32:36 UTC 2023 - Andreas Stieger
+
+- update to 3.9.7:
+ * handle gnutar archive extension field formats to search huge
+ files (>4GB) stored in (gnu) tar archives
+- includes changes gro 3.9.6:
+ * Fixed a Unicode-specific regex pattern syntax issue that caused
+ a valid regex pattern to produce a regex syntax error message
+
+-------------------------------------------------------------------
Old:
----
ugrep-3.9.5.tar.gz
New:
----
ugrep-3.9.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ugrep.spec ++++++
--- /var/tmp/diff_new_pack.MtV6N8/_old 2023-02-01 16:39:52.741920464 +0100
+++ /var/tmp/diff_new_pack.MtV6N8/_new 2023-02-01 16:39:52.745920490 +0100
@@ -17,7 +17,7 @@
Name: ugrep
-Version: 3.9.5
+Version: 3.9.7
Release: 0
Summary: Universal grep: a feature-rich grep implementation with focus on speed
License: BSD-3-Clause
++++++ ugrep-3.9.5.tar.gz -> ugrep-3.9.7.tar.gz ++++++
Binary files old/ugrep-3.9.5/bin/win32/ugrep.exe and new/ugrep-3.9.7/bin/win32/ugrep.exe differ
Binary files old/ugrep-3.9.5/bin/win64/ugrep.exe and new/ugrep-3.9.7/bin/win64/ugrep.exe differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ugrep-3.9.5/include/reflex/absmatcher.h new/ugrep-3.9.7/include/reflex/absmatcher.h
--- old/ugrep-3.9.5/include/reflex/absmatcher.h 2023-01-14 16:54:59.000000000 +0100
+++ new/ugrep-3.9.7/include/reflex/absmatcher.h 2023-01-31 17:06:32.000000000 +0100
@@ -1028,7 +1028,7 @@
return EOF;
if (static_cast<unsigned char>(*s++ = c) >= 0x80)
{
- while (((++*s = get()) & 0xC0) == 0x80)
+ while (((*s++ = get()) & 0xC0) == 0x80)
continue;
got_ = static_cast<unsigned char>(buf_[cur_ = --pos_]);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ugrep-3.9.5/lib/convert.cpp new/ugrep-3.9.7/lib/convert.cpp
--- old/ugrep-3.9.5/lib/convert.cpp 2023-01-14 16:54:59.000000000 +0100
+++ new/ugrep-3.9.7/lib/convert.cpp 2023-01-31 17:06:32.000000000 +0100
@@ -2138,9 +2138,12 @@
{
regex.append(par).append(&pattern[loc], pos - loc).push_back(')');
loc = pos;
+ --pos;
}
- if (pos > loc)
+ else if (pos > loc)
+ {
--pos;
+ }
}
anc = false;
beg = false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ugrep-3.9.5/lib/pattern.cpp new/ugrep-3.9.7/lib/pattern.cpp
--- old/ugrep-3.9.5/lib/pattern.cpp 2023-01-14 16:54:59.000000000 +0100
+++ new/ugrep-3.9.7/lib/pattern.cpp 2023-01-31 17:06:32.000000000 +0100
@@ -2810,9 +2810,12 @@
const std::string& filename = *i;
size_t len = filename.length();
if ((len > 2 && filename.compare(len - 2, 2, ".h" ) == 0)
+ || (len > 3 && filename.compare(len - 3, 3, ".hh" ) == 0)
|| (len > 4 && filename.compare(len - 4, 4, ".hpp") == 0)
+ || (len > 4 && filename.compare(len - 4, 4, ".hxx") == 0)
+ || (len > 3 && filename.compare(len - 3, 3, ".cc" ) == 0)
|| (len > 4 && filename.compare(len - 4, 4, ".cpp") == 0)
- || (len > 3 && filename.compare(len - 3, 3, ".cc" ) == 0))
+ || (len > 4 && filename.compare(len - 4, 4, ".cxx") == 0))
{
FILE *file = NULL;
int err = 0;
@@ -3212,7 +3215,8 @@
{
const std::string& filename = *i;
size_t len = filename.length();
- if (len > 3 && filename.compare(len - 3, 3, ".gv") == 0)
+ if ((len > 3 && filename.compare(len - 3, 3, ".gv") == 0)
+ || (len > 4 && filename.compare(len - 4, 4, ".dot") == 0))
{
FILE *file = NULL;
int err = 0;
@@ -3359,9 +3363,12 @@
const std::string& filename = *i;
size_t len = filename.length();
if ((len > 2 && filename.compare(len - 2, 2, ".h" ) == 0)
+ || (len > 3 && filename.compare(len - 3, 3, ".hh" ) == 0)
|| (len > 4 && filename.compare(len - 4, 4, ".hpp") == 0)
+ || (len > 4 && filename.compare(len - 4, 4, ".hxx") == 0)
+ || (len > 3 && filename.compare(len - 3, 3, ".cc" ) == 0)
|| (len > 4 && filename.compare(len - 4, 4, ".cpp") == 0)
- || (len > 3 && filename.compare(len - 3, 3, ".cc" ) == 0))
+ || (len > 4 && filename.compare(len - 4, 4, ".cxx") == 0))
{
FILE *file = NULL;
int err = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ugrep-3.9.5/src/ugrep.cpp new/ugrep-3.9.7/src/ugrep.cpp
--- old/ugrep-3.9.5/src/ugrep.cpp 2023-01-14 16:54:59.000000000 +0100
+++ new/ugrep-3.9.7/src/ugrep.cpp 2023-01-31 17:06:32.000000000 +0100
@@ -1135,28 +1135,52 @@
while (!stop)
{
- // extract tar header fields (name and prefix strings are not \0-terminated!!)
+ // tar header fields name, size and prefix and make them \0-terminated by overwriting fields we do not use
+ buf[100] = '\0';
const char *name = reinterpret_cast(buf);
+ // path prefix is up to 155 bytes (ustar) or up to 131 bytes (gnutar)
+ buf[345 + (is_ustar ? 155 : 131)] = '\0';
const char *prefix = reinterpret_cast(buf + 345);
- size_t size = strtoul(reinterpret_cast(buf + 124), NULL, 8);
- int padding = (BLOCKSIZE - size % BLOCKSIZE) % BLOCKSIZE;
- unsigned char typeflag = buf[156];
+
+ // check GNU tar extension with leading byte 0x80 (unsigned positive) or leading byte 0xff (negative)
+ size_t size = 0;
+ if (buf[124] == 0x80)
+ {
+ // 11 byte big-endian size field without the leading 0x80
+ for (short i = 125; i < 136; ++i)
+ size = (size << 8) + buf[i];
+ }
+ else if (buf[124] == 0xff)
+ {
+ // a negative size makes no sense, but let's not ignore it and cast to unsigned
+ for (short i = 124; i < 136; ++i)
+ size = (size << 8) + buf[i];
+ }
+ else
+ {
+ buf[136] = '\0';
+ size = strtoull(reinterpret_cast(buf + 124), NULL, 8);
+ }
// header types
+ unsigned char typeflag = buf[156];
bool is_regular = typeflag == '0' || typeflag == '\0';
bool is_xhd = typeflag == 'x';
bool is_extended = typeflag == 'L';
- // assign the (long) tar pathname, path prefix is 155 bytes (ustar) or 131 bytes (gnutar)
+ // padding size
+ int padding = (BLOCKSIZE - size % BLOCKSIZE) % BLOCKSIZE;
+
+ // assign the (long) tar pathname, name and prefix are now \0-terminated
path.clear();
if (long_path.empty())
{
if (*prefix != '\0')
{
- path.assign(prefix, strnlen(prefix, is_ustar ? 155 : 131));
+ path.assign(prefix);
path.push_back('/');
}
- path.append(name, strnlen(name, 100));
+ path.append(name);
}
else
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ugrep-3.9.5/src/ugrep.hpp new/ugrep-3.9.7/src/ugrep.hpp
--- old/ugrep-3.9.5/src/ugrep.hpp 2023-01-14 16:54:59.000000000 +0100
+++ new/ugrep-3.9.7/src/ugrep.hpp 2023-01-31 17:06:32.000000000 +0100
@@ -38,7 +38,7 @@
#define UGREP_HPP
// ugrep version
-#define UGREP_VERSION "3.9.5"
+#define UGREP_VERSION "3.9.7"
// disable mmap because mmap is almost always slower than the file reading speed improvements since 3.0.0
#define WITH_NO_MMAP