forked from pool/libical
* Clean up the byte-swapping macros * Fix a testcase in libical-glib when using 64-bit on a 32-bit system - update to 3.0.19: * Fix for changes to the libicu 75 API * Add vcpkg manifest-mode support * Improved berkeley-db discovery on Mac with homebrew * Improved libicu discrovery on Mac with homebrew * Properly set DYLD_LIBRARY_PATH on Mac for libical-ical tests * Resolved known limitation: Negative values are now also supported for `BYMONTHDAY` and `BYYEARDAY`. * Add support for RDATE;VALUE=PERIOD * Fix time conversion to time_t for times before epoch * Allow `icalcomponent_foreach_recurrence` to receive `DATE`-only `start` and `end` params. * Fix the calculation of an event's duration if `DTSTART` is a `DATE`-only value. * Fix `icaltime_span_new()` - ignore the case where DTEND is unset and require it to be set by the caller instead. * Various fixes for fuzzer issues OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libical?expand=0&rev=92
44 lines
1.4 KiB
Diff
44 lines
1.4 KiB
Diff
From bf83a0d664f46229836852f5b41539c263c3b921 Mon Sep 17 00:00:00 2001
|
|
From: Jan Engelhardt <jengelh@inai.de>
|
|
Date: Mon, 17 Sep 2018 16:36:36 +0200
|
|
Subject: [PATCH 2/5] vcc.y - fix infinite loop with lower-case hex digits
|
|
References: https://github.com/libical/libical/pull/354
|
|
|
|
When lower-case hex digits are used in a quoted-printable-encoded
|
|
character, an infinite loop would occur in the vcard parser.
|
|
|
|
"N;ENCODING=QUOTED-PRINTABLE:=c3=a4=c3=b6;=c3=bC=c3=9f\n"
|
|
|
|
References: #353
|
|
---
|
|
src/libicalvcal/vcc.c | 2 ++
|
|
src/libicalvcal/vcc.y | 2 ++
|
|
2 files changed, 4 insertions(+)
|
|
|
|
Index: libical-3.0.17/src/libicalvcal/vcc.c
|
|
===================================================================
|
|
--- libical-3.0.17.orig/src/libicalvcal/vcc.c
|
|
+++ libical-3.0.17/src/libicalvcal/vcc.c
|
|
@@ -991,6 +991,8 @@ static int hexdigit_decode(char c)
|
|
return c - '0';
|
|
if (c >= 'A' && c <= 'F')
|
|
return c - 'A' + 10;
|
|
+ if (c >= 'a' && c <= 'f')
|
|
+ return c - 'a' + 10;
|
|
return -1;
|
|
}
|
|
|
|
Index: libical-3.0.17/src/libicalvcal/vcc.y
|
|
===================================================================
|
|
--- libical-3.0.17.orig/src/libicalvcal/vcc.y
|
|
+++ libical-3.0.17/src/libicalvcal/vcc.y
|
|
@@ -955,6 +955,8 @@ static int hexdigit_decode(char c)
|
|
return c - '0';
|
|
if (c >= 'A' && c <= 'F')
|
|
return c - 'A' + 10;
|
|
+ if (c >= 'a' && c <= 'f')
|
|
+ return c - 'a' + 10;
|
|
return -1;
|
|
}
|
|
|