Update to 3.0.1

This commit is contained in:
Milan Crha 2017-11-20 10:28:03 +01:00
parent 0dcaf60b1e
commit 461718c884
7 changed files with 7 additions and 171 deletions

1
.gitignore vendored
View File

@ -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

View File

@ -1,30 +0,0 @@
From eeeaeddd215a8b3796fa66473877629d697a7fcf Mon Sep 17 00:00:00 2001
From: Milan Crha <mcrha@redhat.com>
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

View File

@ -1,31 +0,0 @@
From a84f1f97e995008657c19f931b6bf589e883e84c Mon Sep 17 00:00:00 2001
From: Milan Crha <mcrha@redhat.com>
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

View File

@ -1,69 +0,0 @@
From c1485563af90468704d835a5f9af506ead1de861 Mon Sep 17 00:00:00 2001
From: Milan Crha <mcrha@redhat.com>
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

View File

@ -1,29 +0,0 @@
From aade7e4ff5ca87cda1c0c6503c8f0ff211c66860 Mon Sep 17 00:00:00 2001
From: Milan Crha <mcrha@redhat.com>
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

View File

@ -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 <mcrha@redhat.com> - 3.0.1-1
- Update to 3.0.1
* Mon Nov 06 2017 Milan Crha <mcrha@redhat.com> - 3.0.0-2
- Add a patch to Correct possible deadlock caused in icaltimezone_load_builtin_timezone()

View File

@ -1 +1 @@
SHA512 (libical-3.0.0.tar.gz) = 96eaf92f3ae8257999ef4410e2e6de95d1fee0d76c519ab5abc4eead556e1fab42cf74803637a748c3f3601fa60018a2cac26a5a531447c1d4928defd5491a5e
SHA512 (libical-3.0.1.tar.gz) = 559f2b3c8a64e1734a2bacb41baa12be3580c83ddf781502a47ad7d01ded2bae54c2cf3a165ebf2257f26902fc68cfe48dc582127d52716ec58f89ae2e5ceff4