summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllen Winter <allen.winter@kdab.com>2022-10-01 10:02:50 -0400
committerAllen Winter <allen.winter@kdab.com>2022-10-01 10:02:50 -0400
commit77a72109c520fff5ee3d3b1605e0a01ab6145ab3 (patch)
tree811490220afdbaaee2433277ac8d054d024906d1
parentd8ef53ca39e6614b80ae6fe326c54efa4b5a403c (diff)
parentca3e2ad983771b90da259994b7a6d7de1fd1abdc (diff)
downloadlibical-git-77a72109c520fff5ee3d3b1605e0a01ab6145ab3.tar.gz
Merge branch '3.0'
-rw-r--r--ReleaseNotes.txt2
-rwxr-xr-xscripts/buildtests.sh11
-rw-r--r--src/libical/icalparser.c4
3 files changed, 10 insertions, 7 deletions
diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt
index 386c6e67..d986dc2f 100644
--- a/ReleaseNotes.txt
+++ b/ReleaseNotes.txt
@@ -62,7 +62,7 @@ Version 3.0.15 (UNRELEASED):
to work properly between years 1902 and 10k.
* Fix x-property comma handling and escaping
* Built-in timezones updated to tzdata2022d (now with a VTIMEZONE for each time zone alias)
- * Fix a fuzzer issue
+ * Fix fuzzer issues
Version 3.0.14 (05 February 2022):
----------------------------------
diff --git a/scripts/buildtests.sh b/scripts/buildtests.sh
index 80a7a3b6..b76b192f 100755
--- a/scripts/buildtests.sh
+++ b/scripts/buildtests.sh
@@ -625,6 +625,7 @@ then
fi
fi
+DEFCMAKEOPTS="-DCMAKE_BUILD_TYPE=Debug"
CMAKEOPTS="-DCMAKE_BUILD_TYPE=Debug -DGOBJECT_INTROSPECTION=False -DICAL_GLIB=False -DICAL_BUILD_DOCS=False"
UUCCMAKEOPTS="$CMAKEOPTS -DCMAKE_DISABLE_FIND_PACKAGE_ICU=True"
TZCMAKEOPTS="$CMAKEOPTS -DUSE_BUILTIN_TZDATA=True"
@@ -644,7 +645,7 @@ CLANGTIDY test2 "$CMAKEOPTS"
CLANGTIDY test2builtin "$TZCMAKEOPTS"
#GCC based build tests
-GCC_BUILD testgcc1 ""
+GCC_BUILD testgcc1 "$DEFCMAKEOPTS"
GCC_BUILD testgcc2 "$CMAKEOPTS"
GCC_BUILD testgcc3 "$UUCCMAKEOPTS"
if (test "`uname -s`" = "Linux")
@@ -663,7 +664,7 @@ GCC_BUILD testgcc1builtin "-DUSE_BUILTIN_TZDATA=True"
GCC_BUILD testgcc2builtin "$TZCMAKEOPTS"
#Ninja build tests
-NINJA_GCC_BUILD testninjagcc1 ""
+NINJA_GCC_BUILD testninjagcc1 "$DEFCMAKEOPTS"
NINJA_GCC_BUILD testninjagcc2 "-DICAL_GLIB=True"
NINJA_GCC_BUILD testninjagcc3 "-DICAL_GLIB=True -DICAL_GLIB_VAPI=ON -DGOBJECT_INTROSPECTION=True"
NINJA_GCC_BUILD testninjagcc4 "-DSHARED_ONLY=True -DICAL_GLIB=False"
@@ -672,7 +673,7 @@ NINJA_GCC_BUILD testninjagcc6 "-DSTATIC_ONLY=True -DICAL_GLIB=False"
NINJA_GCC_BUILD testninjagcc7 "-DSTATIC_ONLY=True -DICAL_GLIB=True -DENABLE_GTK_DOC=False"
NINJA_GCC_BUILD testninjagcc9 "-DSHARED_ONLY=True -DICAL_GLIB=True -DGOBJECT_INTROSPECTION=True -DICAL_GLIB_VAPI=ON"
-CLANG_BUILD testclang1 ""
+CLANG_BUILD testclang1 "$DEFCMAKEOPTS"
CLANG_BUILD testclang2 "$CMAKEOPTS"
CLANG_BUILD testclang3 "$UUCCMAKEOPTS"
#not supported with clang yet CLANG_BUILD testclang4lto "$LTOCMAKEOPTS"
@@ -693,14 +694,14 @@ MEMCONSIST_BUILD test4memc "$UUCCMAKEOPTS"
#MEMCONSIST_BUILD test5memc "$GLIBOPTS"
#Address sanitizer
-ASAN_BUILD test1asan ""
+ASAN_BUILD test1asan "$DEFCMAKEOPTS"
ASAN_BUILD test2asan "$CMAKEOPTS"
ASAN_BUILD test3asan "$TZCMAKEOPTS"
ASAN_BUILD test4asan "$UUCCMAKEOPTS"
ASAN_BUILD test5asan "$GLIBOPTS"
#Thread sanitizer
-TSAN_BUILD test1tsan ""
+TSAN_BUILD test1tsan "$DEFCMAKEOPTS"
TSAN_BUILD test2tsan "$CMAKEOPTS"
TSAN_BUILD test3tsan "$TZCMAKEOPTS"
TSAN_BUILD test4tsan "$UUCCMAKEOPTS"
diff --git a/src/libical/icalparser.c b/src/libical/icalparser.c
index 295dced9..ea192c38 100644
--- a/src/libical/icalparser.c
+++ b/src/libical/icalparser.c
@@ -627,6 +627,7 @@ icalcomponent *icalparser_parse(icalparser *parser,
icalparser_line_gen_func line_gen_func)
{
char *line;
+ unsigned int cnt = 0;
icalcomponent *c = 0;
icalcomponent *root = 0;
icalerrorstate es = icalerror_get_error_state(ICAL_MALFORMEDDATA_ERROR);
@@ -637,6 +638,7 @@ icalcomponent *icalparser_parse(icalparser *parser,
icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR, ICAL_ERROR_NONFATAL);
do {
+ cnt++;
line = icalparser_get_line(parser, line_gen_func);
if ((c = icalparser_add_line(parser, line)) != 0) {
@@ -676,7 +678,7 @@ icalcomponent *icalparser_parse(icalparser *parser,
icalmemory_free_buffer(line);
cont = 1;
}
- } while (cont);
+ } while (cont && cnt < TMP_BUF_SIZE);
icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR, es);