[frameworks-kholidays] [Bug 434027] Easter calculation causes division by zero for some negative years

Vojtěch Bartoň bugzilla_noreply at kde.org
Sun Mar 7 17:46:37 GMT 2021


https://bugs.kde.org/show_bug.cgi?id=434027

--- Comment #2 from Vojtěch Bartoň <gamingforyou875 at gmail.com> ---
(In reply to Alois Wohlschlager from comment #1)
> Backtrace with more debug symbols:
> 
> Application: Plasma (plasmashell), signal: Floating point exception
> Content of s_kcrashErrorMessage: [Current thread is 1 (LWP 30819)]
> [KCrash Handler]
> #5  0x00007fda35c8b438 in KHolidays::HolidayParserDriverPlan::easter(int)
> (this=this at entry=0x7fffe99af728, year=-4) at
> /home/alois/kde/src/frameworks/kholidays/src/parsers/plan2/
> holidayparserdriverplan.cpp:235
> #6  0x00007fda35c8ce0f in KHolidays::HolidayParserDriverPlan::parse()
> (this=0x7fffe99af728) at
> /home/alois/kde/src/frameworks/kholidays/src/parsers/plan2/
> holidayparserdriverplan.cpp:95
> #7  0x00007fda35c81d7e in
> KHolidays::HolidayParserDriver::parseHolidays(QDate const&, QDate const&)
> (this=0x21bcb40, startDate=..., endDate=...) at
> /home/alois/kde/src/frameworks/kholidays/src/parsers/holidayparserdriver.cpp:
> 55
> #8  0x00007fda35c7bed9 in KHolidays::HolidayRegion::holidays(QDate const&,
> QDate const&) const (this=0x21e47b0, startDate=..., endDate=...) at
> /home/alois/kde/src/frameworks/kholidays/src/holidayregion.cpp:1078
> #9  0x00007fda35c6c82b in  () at
> /usr/lib64/qt5/plugins/plasmacalendarplugins/holidaysevents.so
> #10 0x00007fda35ddaf2f in DaysModel::update() (this=0x270c5c0) at
> /home/alois/kde/src/frameworks/plasma-framework/src/declarativeimports/
> calendar/daysmodel.cpp:90
> #11 DaysModel::update() (this=0x270c5c0) at
> /home/alois/kde/src/frameworks/plasma-framework/src/declarativeimports/
> calendar/daysmodel.cpp:77
> #12 0x00007fda35dd96b4 in Calendar::updateData() (this=this at entry=0x2712200)
> at
> /home/alois/kde/src/frameworks/plasma-framework/src/declarativeimports/
> calendar/calendar.cpp:296
> #13 0x00007fda35dd9918 in Calendar::updateData() (this=0x2712200) at
> /home/alois/kde/src/frameworks/plasma-framework/src/declarativeimports/
> calendar/calendar.cpp:55
> #14 Calendar::setDisplayedDate(QDate const&) (this=this at entry=0x2712200,
> dateTime=...) at
> /home/alois/kde/src/frameworks/plasma-framework/src/declarativeimports/
> calendar/calendar.cpp:47
> #15 0x00007fda35dd9b2e in Calendar::setDisplayedDate(QDate const&)
> (dateTime=..., this=0x2712200) at /usr/include/qt5/QtCore/qdatetime.h:150
> #16 Calendar::previousMonth() (this=0x2712200) at
> /home/alois/kde/src/frameworks/plasma-framework/src/declarativeimports/
> calendar/calendar.cpp:343
> #17 0x00007fda35dd66af in Calendar::qt_static_metacall(QObject*,
> QMetaObject::Call, int, void**) (_o=_o at entry=0x2712200,
> _c=_c at entry=QMetaObject::InvokeMetaMethod, _id=_id at entry=12,
> _a=_a at entry=0x7fffe99afde0) at
> /home/alois/kde/build/frameworks/plasma-framework/src/declarativeimports/
> calendar/calendarplugin_autogen/EWIEGA46WW/moc_calendar.cpp:231
> #18 0x00007fda35dd7053 in Calendar::qt_metacall(QMetaObject::Call, int,
> void**) (this=0x2712200, _c=QMetaObject::InvokeMetaMethod, _id=12,
> _a=0x7fffe99afde0) at
> /home/alois/kde/build/frameworks/plasma-framework/src/declarativeimports/
> calendar/calendarplugin_autogen/EWIEGA46WW/moc_calendar.cpp:392
> #19 0x00007fda83b9fd9d in  () at /usr/lib64/libQt5Qml.so.5
> #20 0x00007fda83a88a4e in  () at /usr/lib64/libQt5Qml.so.5
> #21 0x00007fda83a8afda in QV4::QObjectMethod::callInternal(QV4::Value
> const*, QV4::Value const*, int) const () at /usr/lib64/libQt5Qml.so.5
> #22 0x00007fda83ab7cba in
> QV4::Runtime::CallPropertyLookup::call(QV4::ExecutionEngine*, QV4::Value
> const&, unsigned int, QV4::Value*, int) () at /usr/lib64/libQt5Qml.so.5
> #23 0x00007fda595eba52 in  ()
> #24 0x0000000000000000 in  ()
> [Inferior 1 (process 30819) detached]
> 
> The issue is caused by the easter calculation blowing up for negative years
> because division and modulo in C do not correspond to the mathematical
> definition of the operations for negative operands. I think the best fix
> will be to not calculate easter at all for negative years because it does
> not make any sense for obvious reasons.

Interesting, by the way, is there a reason to keep negative years in? I don't
think anyone would mind, if this was changed.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Kdepim-bugs mailing list