Hello community, here is the log from the commit of package perl-Convert-UUlib for openSUSE:Factory checked in at 2020-02-18 13:30:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Convert-UUlib (Old) and /work/SRC/openSUSE:Factory/.perl-Convert-UUlib.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Convert-UUlib" Tue Feb 18 13:30:31 2020 rev:29 rq:775132 version:1.62 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Convert-UUlib/perl-Convert-UUlib.changes 2019-11-11 13:01:36.213767405 +0100 +++ /work/SRC/openSUSE:Factory/.perl-Convert-UUlib.new.26092/perl-Convert-UUlib.changes 2020-02-18 13:30:37.808845426 +0100 @@ -1,0 +2,15 @@ +Tue Feb 18 03:07:17 UTC 2020 - <[email protected]> + +- updated to 1.62 + see /usr/share/doc/packages/perl-Convert-UUlib/Changes + + 1.62 Mon Feb 17 23:19:42 CET 2020 + - major performance improvement by simplifying code in _FP_gets + to not use fscanf. This might slow things down on platforms + with very slow fgetc. + + 1.61 Sun Feb 9 18:38:29 CET 2020 + - lint uulib: fix some format string type mismatches + and some other minor issues. + +------------------------------------------------------------------- Old: ---- Convert-UUlib-1.6.tar.gz New: ---- Convert-UUlib-1.62.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Convert-UUlib.spec ++++++ --- /var/tmp/diff_new_pack.aPDLUl/_old 2020-02-18 13:30:38.912847573 +0100 +++ /var/tmp/diff_new_pack.aPDLUl/_new 2020-02-18 13:30:38.936847620 +0100 @@ -1,7 +1,7 @@ # # spec file for package perl-Convert-UUlib # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: perl-Convert-UUlib -Version: 1.6 +Version: 1.62 Release: 0 #Upstream: CHECK(Artistic-1.0 or GPL-1.0-or-later) %define cpan_name Convert-UUlib @@ -44,7 +44,7 @@ %prep %setup -q -n %{cpan_name}-%{version} -find . -type f ! -path "*/t/*" ! -name "*.pl" ! -name "*.sh" ! -path "*/bin/*" ! -path "*/script/*" ! -name "configure" -print0 | xargs -0 chmod 644 +find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -name "configure" -print0 | xargs -0 chmod 644 %build perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}" ++++++ Convert-UUlib-1.6.tar.gz -> Convert-UUlib-1.62.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Convert-UUlib-1.6/Changes new/Convert-UUlib-1.62/Changes --- old/Convert-UUlib-1.6/Changes 2019-10-24 17:17:05.000000000 +0200 +++ new/Convert-UUlib-1.62/Changes 2020-02-17 23:19:48.000000000 +0100 @@ -1,5 +1,14 @@ Revision history for Perl extension Convert::UUlib. +1.62 Mon Feb 17 23:19:42 CET 2020 + - major performance improvement by simplifying code in _FP_gets + to not use fscanf. This might slow things down on platforms + with very slow fgetc. + +1.61 Sun Feb 9 18:38:29 CET 2020 + - lint uulib: fix some format string type mismatches + and some other minor issues. + 1.6 Thu Oct 24 17:11:54 CEST 2019 - fix heap overflow (testcase by Noel Duffy, reported by Robert Scheck). The defense-in-depth mechanism based diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Convert-UUlib-1.6/META.json new/Convert-UUlib-1.62/META.json --- old/Convert-UUlib-1.6/META.json 2019-10-24 17:17:17.000000000 +0200 +++ new/Convert-UUlib-1.62/META.json 2020-02-17 23:19:55.000000000 +0100 @@ -33,5 +33,5 @@ } }, "release_status" : "stable", - "version" : 1.6 + "version" : 1.62 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Convert-UUlib-1.6/META.yml new/Convert-UUlib-1.62/META.yml --- old/Convert-UUlib-1.6/META.yml 2019-10-24 17:17:17.000000000 +0200 +++ new/Convert-UUlib-1.62/META.yml 2020-02-17 23:19:55.000000000 +0100 @@ -18,4 +18,4 @@ directory: - t - inc -version: 1.6 +version: 1.62 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Convert-UUlib-1.6/UUlib.pm new/Convert-UUlib-1.62/UUlib.pm --- old/Convert-UUlib-1.6/UUlib.pm 2019-10-24 17:13:38.000000000 +0200 +++ new/Convert-UUlib-1.62/UUlib.pm 2020-02-14 09:02:16.000000000 +0100 @@ -8,7 +8,7 @@ require Exporter; require DynaLoader; -our $VERSION = 1.6; +our $VERSION = 1.62; our @ISA = qw(Exporter DynaLoader); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Convert-UUlib-1.6/uulib/fptools.c new/Convert-UUlib-1.62/uulib/fptools.c --- old/Convert-UUlib-1.6/uulib/fptools.c 2009-08-24 08:04:34.000000000 +0200 +++ new/Convert-UUlib-1.62/uulib/fptools.c 2020-02-14 08:55:42.000000000 +0100 @@ -142,7 +142,7 @@ #ifndef FP_stricmp int TOOLEXPORT -_FP_stricmp (char *str1, char *str2) +_FP_stricmp (const char *str1, const char *str2) { if (str1==NULL || str2==NULL) return -1; @@ -159,7 +159,7 @@ #ifndef FP_strnicmp int TOOLEXPORT -_FP_strnicmp (char *str1, char *str2, int count) +_FP_strnicmp (const char *str1, const char *str2, int count) { if (str1==NULL || str2==NULL) return -1; @@ -413,51 +413,51 @@ * properly: LF (Unix), CRLF (DOS) and CR (Mac). */ /* (schmorp) the buffer is always written to, and no LF is stored at the end */ +/* also, if the buffer is too short, the remaining line is skipped */ char * TOOLEXPORT _FP_fgets (char *buf, int n, FILE *stream) { - static char format[64]; - static int format_n = 0; - char *cp = buf; - int res; - int c; + char *ptr = buf; + char *end = buf + n - 1; /* shield against buffer overflows caused by "255 - bytes_left"-kind of bugs when bytes_left > 255 */ if (n <= 0) - return NULL; - - if (format_n != n) - { - sprintf (format, "%%%d[^\015\012]", n - 1); - format_n = n; - } - - *buf = 0; /* fscanf return s0 on empty lines */ - res = fscanf (stream, format, buf); - - if (res == EOF) - return 0; /* an error occured */ + return 0; - /* skip line endings */ for (;;) { - c = _FP_fgetc (stream); + int c = FP_fgetc (stream); - if (c == '\012') /* LF */ - return buf; - else if (c == '\015') /* CR */ + if (ecb_expect_false (c <= '\015')) /* EOF is < 0x20, too */ { - c = _FP_fgetc (stream); - if (c != '\012') /* CR LF? */ - ungetc (c, stream); + /* ctlchar */ - return buf; + if (c == '\012') + /* LF, nothing following */ + break; + else if (c == '\015') + { + /* CR, possibly CRLF, skip following LF */ + c = FP_fgetc (stream); + + if (c != '\012') /* CR LF? */ + ungetc (c, stream); + + break; + } + else if (c == EOF) + { + *ptr = 0; + return 0; + } } - else if (c == EOF) - return 0; /* error */ - /* skip remaining line */ + *ptr = c; + ptr += ptr < end; /* this is hopefully branch-free, and fast */ } + + *ptr = 0; + return buf; } /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Convert-UUlib-1.6/uulib/fptools.h new/Convert-UUlib-1.62/uulib/fptools.h --- old/Convert-UUlib-1.6/uulib/fptools.h 2009-09-15 19:00:57.000000000 +0200 +++ new/Convert-UUlib-1.62/uulib/fptools.h 2020-02-14 08:44:05.000000000 +0100 @@ -29,6 +29,22 @@ extern "C" { #endif +/* relicensed from libecb with permission */ +#if 1 + +#define ECB_GCC_VERSION(major,minor) (__GNUC__ > (major) || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor))) + +#if ECB_GCC_VERSION(3,1) + #define ecb_expect(expr,value) __builtin_expect ((expr),(value)) +#else + #define ecb_expect(expr,value) (expr) +#endif + +#define ecb_expect_false(expr) ecb_expect (!!(expr), 0) +#define ecb_expect_true(expr) ecb_expect (!!(expr), 1) + +#endif + #define _FP_free FP_free #define _FP_strdup FP_strdup #define _FP_strncpy FP_strncpy @@ -63,12 +79,12 @@ char * TOOLEXPORT _FP_strdup (char *); char * TOOLEXPORT _FP_strncpy (char *, char *, int); void * TOOLEXPORT _FP_memdup (void *, int); -int TOOLEXPORT _FP_stricmp (char *, char *); -int TOOLEXPORT _FP_strnicmp (char *, char *, int); +int TOOLEXPORT _FP_stricmp (const char *, const char *); +int TOOLEXPORT _FP_strnicmp (const char *, const char *, int); char * TOOLEXPORT _FP_strrstr (char *, char *); char * TOOLEXPORT _FP_stoupper (char *); char * TOOLEXPORT _FP_stolower (char *); -int TOOLEXPORT _FP_strmatch (char *, char *); +int TOOLEXPORT _FP_strmatch (char *, char *); char * TOOLEXPORT _FP_stristr (char *, char *); char * TOOLEXPORT _FP_strirstr (char *, char *); char * TOOLEXPORT _FP_strrchr (char *, int); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Convert-UUlib-1.6/uulib/uuencode.c new/Convert-UUlib-1.62/uulib/uuencode.c --- old/Convert-UUlib-1.6/uulib/uuencode.c 2009-08-24 06:49:19.000000000 +0200 +++ new/Convert-UUlib-1.62/uulib/uuencode.c 2020-02-09 15:55:32.000000000 +0100 @@ -756,13 +756,13 @@ else if (encoding == YENC_ENCODED) { if (progress.fsize == -1) { fprintf (outfile, "=yend crc32=%08lx%s", - crc, + (long)crc, eolstring); } else { fprintf (outfile, "=yend size=%ld crc32=%08lx%s", progress.fsize, - crc, + (long)crc, eolstring); } } @@ -1003,14 +1003,14 @@ ? linperfile * 128 : (progress.totsize - (partno - 1) * linperfile * 128), partno, - pcrc); + (long)pcrc); } else { fprintf (outfile, "=yend size=%ld", progress.totsize); } if (feof (theifile)) - fprintf (outfile, " crc32=%08lx", *crcptr); + fprintf (outfile, " crc32=%08lx", (long)*crcptr); fprintf (outfile, "%s", eolstring); } @@ -1153,13 +1153,13 @@ else if (encoding == YENC_ENCODED) { if (progress.fsize == -1) { fprintf (outfile, "=yend crc32=%08lx%s", - crc, + (long)crc, eolstring); } else { fprintf (outfile, "=yend size=%ld crc32=%08lx%s", progress.fsize, - crc, + (long)crc, eolstring); } } @@ -1457,14 +1457,14 @@ (part*linperfile*128) < progress.totsize ? linperfile*128 : (progress.totsize-(part-1)*linperfile*128), part, - pcrc); + (long)pcrc); } else { fprintf (outfile, "=yend size=%ld", progress.totsize); } if (feof (theifile)) - fprintf (outfile, " crc32=%08lx", crc); + fprintf (outfile, " crc32=%08lx", (long)crc); fprintf (outfile, "%s", eolstring); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Convert-UUlib-1.6/uulib/uuscan.c new/Convert-UUlib-1.62/uulib/uuscan.c --- old/Convert-UUlib-1.6/uulib/uuscan.c 2019-10-24 17:05:12.000000000 +0200 +++ new/Convert-UUlib-1.62/uulib/uuscan.c 2020-02-09 16:03:27.000000000 +0100 @@ -182,7 +182,7 @@ ScanHeaderLine (FILE *datei, char *initial) { char *ptr=uuscan_shlline; - char *ptr2, *p1, *p2, *p3; + char *ptr2, *p2, *p3; int llength, c; long curpos; @@ -269,10 +269,10 @@ if (*ptr == '=' && *(ptr+1) == '?') { /* - * Let p1 point to the charset, look for next question mark + * Let p2 point to the charset, look for next question mark */ - p1 = p2 = ptr+2; + p2 = ptr+2; while (*p2 && *p2 != '?') { p2++; @@ -817,7 +817,8 @@ } if ((ptr = strchr (line, ':')) != NULL) { ptr++; - while (isspace (*ptr)) ptr++; p2 = ptr; + while (isspace (*ptr)) ptr++; + p2 = ptr; while (*p2 && !isspace (*p2) && *p2 != ';') p2++; c = *p2; *p2 = '\0'; if (p2 != ptr) {
