diff --git a/.gitignore b/.gitignore index 3fc8927..d91c1e7 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /libical-1.0.1.tar.gz /libical-2.0.0.tar.gz /libical-3.0.0.tar.gz +/libical-3.0.1.tar.gz diff --git a/0001-Increase-element-size-in-libical-glib-array.py-test.patch b/0001-Increase-element-size-in-libical-glib-array.py-test.patch deleted file mode 100644 index 0fd4974..0000000 --- a/0001-Increase-element-size-in-libical-glib-array.py-test.patch +++ /dev/null @@ -1,30 +0,0 @@ -From eeeaeddd215a8b3796fa66473877629d697a7fcf Mon Sep 17 00:00:00 2001 -From: Milan Crha -Date: Wed, 1 Nov 2017 16:17:49 +0100 -Subject: [PATCH 1/3] Increase element size in libical-glib/array.py test - -The element size 100 was not enough to hold the whole object -on ppc64, ppc64le, aarch64 and s390x architectures, causing objects -breakages and later even crashes. Hence increase the element size. -The size 128 is enough, but use higher value, to have some room -for the future. ---- - src/test/libical-glib/array.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/test/libical-glib/array.py b/src/test/libical-glib/array.py -index 571d45a2..cc7cc758 100755 ---- a/src/test/libical-glib/array.py -+++ b/src/test/libical-glib/array.py -@@ -22,7 +22,7 @@ import sys - from gi.repository import ICalGLib - from sys import getsizeof - --array = ICalGLib.Array.new(100, 100); -+array = ICalGLib.Array.new(256, 100); - - element1 = "hello"; - element2 = "world"; --- -2.13.5 - diff --git a/0002-Return-back-fail-forgiveness-into-the-timezones-test.patch b/0002-Return-back-fail-forgiveness-into-the-timezones-test.patch deleted file mode 100644 index a64ef72..0000000 --- a/0002-Return-back-fail-forgiveness-into-the-timezones-test.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a84f1f97e995008657c19f931b6bf589e883e84c Mon Sep 17 00:00:00 2001 -From: Milan Crha -Date: Wed, 1 Nov 2017 17:45:49 +0100 -Subject: [PATCH 2/3] Return back fail-forgiveness into the 'timezones' test - -This returns a little part of commit 77f82ba88abbb633dc52335fcc050bec3b41c269, -to not fail the test when less than two percents of the test fail. -It stroke with tzdata-2017c. ---- - src/test/timezones.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/test/timezones.c b/src/test/timezones.c -index 661c008f..4ccfdea7 100644 ---- a/src/test/timezones.c -+++ b/src/test/timezones.c -@@ -159,6 +159,11 @@ int main() - percent_failed = total_failed * 100 / (total_failed + total_okay); - printf(" *** Summary: %lu zones tested, %u days failed, %u okay => %u%% failed ***\n", - (unsigned long)timezones->num_elements, total_failed, total_okay, percent_failed); -+ -+ if (percent_failed <= 1 && total_failed) { -+ ret = 0; -+ printf(" *** Expect some small error rate with inter-operable vtimezones *** \n"); -+ } - } - - icaltimezone_free_builtin_timezones(); --- -2.13.5 - diff --git a/0003-Fix-possible-use-after-free-in-timezones-test.patch b/0003-Fix-possible-use-after-free-in-timezones-test.patch deleted file mode 100644 index 49f69bb..0000000 --- a/0003-Fix-possible-use-after-free-in-timezones-test.patch +++ /dev/null @@ -1,69 +0,0 @@ -From c1485563af90468704d835a5f9af506ead1de861 Mon Sep 17 00:00:00 2001 -From: Milan Crha -Date: Wed, 1 Nov 2017 18:14:23 +0100 -Subject: [PATCH 3/3] Fix possible use-after-free in 'timezones' test - -valgrind report of the use-after-free: -Invalid read of size 1 - at 0x4C31B82: strlen (vg_replace_strmem.c:458) - by 0x510C484: vfprintf (in /usr/lib64/libc-2.25.so) - by 0x5113425: printf (in /usr/lib64/libc-2.25.so) - by 0x401116: main (timezones.c:116) - Address 0x8431930 is 0 bytes inside a block of size 19 free'd - at 0x4C2FD18: free (vg_replace_malloc.c:530) - by 0x4E87B27: icaltimezone_get_vtimezone_properties (icaltimezone.c:321) - by 0x4E8A6CA: icaltimezone_load_builtin_timezone (icaltimezone.c:1873) - by 0x4E88148: icaltimezone_ensure_coverage (icaltimezone.c:483) - by 0x4E88FAC: icaltimezone_get_utc_offset_of_utc_time (icaltimezone.c:1003) - by 0x4E88ACF: icaltimezone_convert_time (icaltimezone.c:813) - by 0x4E85548: icaltime_convert_to_zone (icaltime.c:981) - by 0x400F2C: main (timezones.c:98) - Block was alloc'd at - at 0x4C2EB6B: malloc (vg_replace_malloc.c:299) - by 0x514ECE9: strdup (in /usr/lib64/libc-2.25.so) - by 0x4E8A31F: icaltimezone_parse_zone_tab (icaltimezone.c:1761) - by 0x4E89C5F: icaltimezone_init_builtin_timezones (icaltimezone.c:1566) - by 0x4E89757: icaltimezone_get_builtin_timezones (icaltimezone.c:1347) - by 0x400DB4: main (timezones.c:53) - -Which means that the 'zone_location' variable holds freed memory -from time of icaltimezone_load_builtin_timezone() within -icaltimezone_ensure_coverage(). ---- - src/test/timezones.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/test/timezones.c b/src/test/timezones.c -index 4ccfdea7..98ba1c82 100644 ---- a/src/test/timezones.c -+++ b/src/test/timezones.c -@@ -26,7 +26,7 @@ int main() - { - icalarray *timezones; - icaltimezone *zone, *utc_zone; -- char *zone_location; -+ const char *zone_location; - size_t i; - int ret = 0; - unsigned int total_failed = 0; -@@ -56,7 +56,7 @@ int main() - /* for all known time zones... */ - for (i = 0; i < timezones->num_elements; i++) { - zone = (icaltimezone *)icalarray_element_at(timezones, i); -- zone_location = (char *)icaltimezone_get_location(zone); -+ zone_location = icaltimezone_get_location(zone); - zonedef_printed = 0; - if (!zone_location) - continue; -@@ -116,7 +116,7 @@ int main() - printf( - "%s: day %03d: %s: %04d-%02d-%02d %02d:%02d:%02d UTC = " - "libc %04d-%02d-%02d %02d:%02d:%02d dst %d", -- zone_location, day, -+ icaltimezone_get_location(zone), day, - verbose ? (curr_failed ? "failed" : "okay") : (curr_failed ? "first failed" : - "okay again"), - utc_tm.tm_year + 1900, utc_tm.tm_mon + 1, utc_tm.tm_mday, utc_tm.tm_hour, --- -2.13.5 - diff --git a/0004-Correct-possible-deadlock-caused-in-icaltimezone_loa.patch b/0004-Correct-possible-deadlock-caused-in-icaltimezone_loa.patch deleted file mode 100644 index c271928..0000000 --- a/0004-Correct-possible-deadlock-caused-in-icaltimezone_loa.patch +++ /dev/null @@ -1,29 +0,0 @@ -From aade7e4ff5ca87cda1c0c6503c8f0ff211c66860 Mon Sep 17 00:00:00 2001 -From: Milan Crha -Date: Mon, 6 Nov 2017 14:29:09 +0100 -Subject: [PATCH] Correct possible deadlock caused in - icaltimezone_load_builtin_timezone() - -There had been missing icaltimezone_builtin_unlock() when the passed-in -zone had not set location, which could cause deadlock in following calls -to acquire the builtin lock. ---- - src/libical/icaltimezone.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/libical/icaltimezone.c b/src/libical/icaltimezone.c -index 7ed36414..58741d4c 100644 ---- a/src/libical/icaltimezone.c -+++ b/src/libical/icaltimezone.c -@@ -1822,7 +1822,7 @@ static void icaltimezone_load_builtin_timezone(icaltimezone *zone) - - /* If the location isn't set, it isn't a builtin timezone. */ - if (!zone->location || !zone->location[0]) -- return; -+ goto out; - - if (use_builtin_tzdata) { - char *filename; --- -2.13.5 - diff --git a/libical.spec b/libical.spec index d07107c..3fb2a39 100644 --- a/libical.spec +++ b/libical.spec @@ -1,16 +1,11 @@ Summary: Reference implementation of the iCalendar data type and serialization format Name: libical -Version: 3.0.0 -Release: 2%{?dist} +Version: 3.0.1 +Release: 1%{?dist} License: LGPLv2 or MPLv2.0 URL: http://freeassociation.sourceforge.net/ Source: https://github.com/%{name}/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz -Patch01: 0001-Increase-element-size-in-libical-glib-array.py-test.patch -Patch02: 0002-Return-back-fail-forgiveness-into-the-timezones-test.patch -Patch03: 0003-Fix-possible-use-after-free-in-timezones-test.patch -Patch04: 0004-Correct-possible-deadlock-caused-in-icaltimezone_loa.patch - BuildRequires: bison, byacc, flex BuildRequires: cmake BuildRequires: gtk-doc @@ -75,10 +70,6 @@ Development files needed for building things which link against %{name}-glib. %prep %setup -q -%patch01 -p1 -b .array-py-test-fix -%patch02 -p1 -b .timezones-test-forgiveness -%patch03 -p1 -b .timezones-test-use-after-free -%patch04 -p1 -b .deadlock-builtin-mutex %build mkdir -p %{_target_platform} @@ -140,6 +131,9 @@ make test ARGS="-V" -C %{_target_platform} %{_datadir}/gtk-doc/html/%{name}-glib %changelog +* Mon Nov 20 2017 Milan Crha - 3.0.1-1 +- Update to 3.0.1 + * Mon Nov 06 2017 Milan Crha - 3.0.0-2 - Add a patch to Correct possible deadlock caused in icaltimezone_load_builtin_timezone() diff --git a/sources b/sources index 6779504..81b3f04 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libical-3.0.0.tar.gz) = 96eaf92f3ae8257999ef4410e2e6de95d1fee0d76c519ab5abc4eead556e1fab42cf74803637a748c3f3601fa60018a2cac26a5a531447c1d4928defd5491a5e +SHA512 (libical-3.0.1.tar.gz) = 559f2b3c8a64e1734a2bacb41baa12be3580c83ddf781502a47ad7d01ded2bae54c2cf3a165ebf2257f26902fc68cfe48dc582127d52716ec58f89ae2e5ceff4