glib/glib
Philip Withnall 38080bad05 gdate: Add overflow precondition checks for g_date_[add|subtract]_*()
These turn undefined or hard-to-detect misbehaviour into a well-defined
critical warning and early return.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

https://bugzilla.gnome.org/show_bug.cgi?id=335731
2018-04-13 15:26:51 +01:00
..
deprecated glib/deprecated/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
glib-mirroring-tab License headers: replace old FSF address by a link to gnu.org 2017-01-04 19:12:57 +01:00
gnulib gmacros: Don't define bogus __has_* macros 2018-03-26 17:12:32 +05:30
libcharset Meson: Add missing options and conform to naming guidelines 2017-12-19 14:56:11 -05:00
pcre Remove HAVE_CONFIG_H defs and uses 2018-02-21 13:57:10 +00:00
tests gtimezone: Add g_time_zone_new_offset() convenience constructor 2018-04-13 15:25:26 +01:00
update-pcre build: Drop nmake/MSC build system for GLib 2017-07-10 11:22:40 +01:00
.gitignore build: Drop nmake/MSC build system for GLib 2017-07-10 11:22:40 +01:00
docs.c docs: Fix a minor grammatical error 2018-03-27 15:20:16 -07:00
galloca.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
garray.c docs: Mention pointer semantics for g_array_set_clear_func() 2018-02-23 19:23:27 +00:00
garray.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gasyncqueue.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gasyncqueue.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gasyncqueueprivate.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gatomic.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gatomic.h gatomic: fix -Wduplicated-branches 2018-02-16 15:43:11 +00:00
gbacktrace.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gbacktrace.h Solaris build fix 2017-11-16 10:36:13 +00:00
gbase64.c Skip g_base64_decode_step() in introspection 2017-09-11 20:44:39 +01:00
gbase64.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gbitlock.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gbitlock.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gbookmarkfile.c gbookmarkfile: check length before dereferencing groups 2018-01-09 15:29:36 -08:00
gbookmarkfile.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gbsearcharray.h Require C90 compliance 2013-11-20 09:16:16 -05:00
gbytes.c tests: additional test for g_bytes_new_from_bytes() 2018-01-27 11:43:38 -08:00
gbytes.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gcharset.c gcharset: Add g_get_language_names_with_category 2018-03-13 12:17:31 +00:00
gcharset.h gcharset: Add g_get_language_names_with_category 2018-03-13 12:17:31 +00:00
gcharsetprivate.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gchecksum.c glib: Add (inout) annotations to g_[hmac|checksum]_get_digest() 2018-03-20 20:21:32 +00:00
gchecksum.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gconstructor.h gconstructor: Work around constructors being optimized away on MSVC 2015-11-12 15:01:54 +08:00
gconvert.c gconvert: Fix some typos in documentation comments 2018-02-13 14:49:20 +00:00
gconvert.h gconvert: Fix error handling for g_iconv() with unrepresentable chars 2018-02-02 10:04:20 +01:00
gdataset.c gdataset: Fix a typo in a documentation comment 2018-01-15 18:26:56 +00:00
gdataset.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gdatasetprivate.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gdate.c gdate: Add overflow precondition checks for g_date_[add|subtract]_*() 2018-04-13 15:26:51 +01:00
gdate.h gdate: add g_date_copy() 2017-10-11 12:13:20 +01:00
gdatetime.c gdatetime: Fix a spurious gcc warning 2018-04-13 15:22:46 +01:00
gdatetime.h gdatetime: Add g_date_time_get_timezone() accessor 2018-04-12 13:25:16 +01:00
gdir.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gdir.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gen-unicode-tables.pl unicode: Update break_mappings 2016-09-21 18:30:52 +02:00
genviron.c glib: fix compiler warning for g_unsetenv_utf8() on windows 2018-01-10 17:24:36 +00:00
genviron.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gerror.c docs: Remove redundant sentence from g_prefix_error() documentation 2018-01-05 19:36:07 +00:00
gerror.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gfileutils.c glib: add g_build_filename_valist() 2017-11-07 08:25:28 -08:00
gfileutils.h Move G_DIR_SEPARATOR* and G_SEARCHPATH_SEPARATOR* into glibconfig.h 2018-01-09 12:08:40 +00:00
ggettext.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
ggettext.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
ghash.c docs: Mention the newly added return values 2018-02-15 11:25:53 +00:00
ghash.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
ghmac.c glib: Add (inout) annotations to g_[hmac|checksum]_get_digest() 2018-03-20 20:21:32 +00:00
ghmac.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
ghook.c docs: add missing '*' chars at start of doc-comments 2017-11-12 16:36:16 +01:00
ghook.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
ghostutils.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
ghostutils.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gi18n-lib.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gi18n.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
giochannel.c glib: Correct typos of ‘character’ 2017-10-06 12:49:12 +01:00
giochannel.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
giounix.c glib: Slightly update GIOChannel documentation 2017-09-08 15:40:15 +01:00
giowin32.c docs: Rewrap line to avoid it being interpreted as a list 2017-10-05 14:49:49 +01:00
gkeyfile.c gkeyfile: Fix -Wincompatible-pointer-types warning 2018-02-08 12:29:57 +00:00
gkeyfile.h GKeyFile: add API for getting locale of a string 2018-02-06 15:51:33 +00:00
glib_gdb.py Rename gdb macros with _gdb suffix to avoid ns clashes 2016-05-23 10:52:10 -04:00
glib_probes.d glib: Add SystemTap probe to g_source_add_child_source() 2016-09-23 22:46:30 -07:00
glib_trace.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
glib-autocleanups.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
glib-init.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
glib-init.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
glib-object.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
glib-private.c W32: Add a stat() implementation for private use 2017-11-01 12:46:38 +00:00
glib-private.h W32: Add a stat() implementation for private use 2017-11-01 12:46:38 +00:00
glib-unix.c docs: Fix various minor syntax errors in gtk-doc comments 2017-11-07 14:51:12 +00:00
glib-unix.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
glib.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
glib.rc.in meson: build Windows resource files 2018-01-04 22:19:30 +01:00
glib.stp.in glib: Namespace global tapset variables by soname 2016-11-23 10:50:39 +00:00
glibconfig.h.in Use a real test for G_HAVE_GNUC_VISIBILITY 2018-03-28 11:55:50 +00:00
glibconfig.h.win32.in Move G_DIR_SEPARATOR* and G_SEARCHPATH_SEPARATOR* into glibconfig.h 2018-01-09 12:08:40 +00:00
glibintl.h various: add GLIB_AVAILABLE_IN_ALL everywhere else 2013-01-13 13:11:57 -05:00
glist.c glib: document restrictions on various foreach() functions 2017-11-16 11:12:32 +00:00
glist.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gmacros.h gmacros: Don't define bogus __has_* macros 2018-03-26 17:12:32 +05:30
gmain-internal.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gmain.c gmain: Fix some minor typos in the documentation 2018-03-26 14:48:12 +01:00
gmain.h gmain: Improve documentation of GSourceFuncs 2017-11-29 13:20:40 -06:00
gmappedfile.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gmappedfile.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gmarkup.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gmarkup.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gmem.c Clarification for memmory allocation function 2018-01-31 22:10:51 +00:00
gmem.h glib: Fix strict-aliasing warnings with g_clear_pointer() 2018-01-08 11:50:31 +00:00
gmessages.c trivial: add some helpful comments 2018-02-06 11:05:57 -05:00
gmessages.h gmessages: Fix -Wformat warnings for g_message() and friends 2018-02-02 10:10:43 +01:00
gmirroringtable.h Bug 491554 – Update to Unicode 5.1.0 2008-04-08 02:59:05 +00:00
gnode.c gnode: Eliminate implicit signed-to-unsigned integer conversion 2017-11-28 14:16:25 +00:00
gnode.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
goption.c docs: Fix various minor syntax errors in gtk-doc comments 2017-11-07 14:51:12 +00:00
goption.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gpattern.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gpattern.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gpoll.c docs: Fix various minor syntax errors in gtk-doc comments 2017-11-07 14:51:12 +00:00
gpoll.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gprimes.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gprimes.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gprintf.c gprintf: Add a reminder concerning <glib/gprintf.h> 2017-10-05 15:02:39 +01:00
gprintf.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gprintfint.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gqsort.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gqsort.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gquark.c gquark: simplify g_intern_string/g_intern_static_string 2018-02-16 12:49:43 +00:00
gquark.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gqueue.c glib: document restrictions on various foreach() functions 2017-11-16 11:12:32 +00:00
gqueue.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
grand.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
grand.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gregex.c docs: Escape some backslashes for markdown 2017-10-05 15:07:09 +01:00
gregex.h glib: Correct typos of ‘character’ 2017-10-06 12:49:12 +01:00
gscanner.c Use hash tables as sets in various places 2017-10-26 12:27:17 +01:00
gscanner.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gscripttable.h unicode: Update to unicode 10.0.0 2017-07-05 17:53:07 +02:00
gsequence.c docs: GSequence: better document how to sort large amount of data 2018-01-16 20:11:31 +01:00
gsequence.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gshell.c introspection: Add more filename type annotations for strings which can contain filenames 2017-10-26 18:51:51 +02:00
gshell.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gslice.c docs: add missing '*' chars at start of doc-comments 2017-11-12 16:36:16 +01:00
gslice.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gslist.c gslist: Document that g_slist_sort() is stable 2017-11-28 14:11:29 +00:00
gslist.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gspawn-win32-helper.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gspawn-win32.c gspawn-win32: Fix multiple definition error with a static build 2017-07-12 23:36:18 +02:00
gspawn.c docs: Add Markdown backticks around /dev/null in a few places 2018-02-08 16:39:32 +00:00
gspawn.h Fix up closure annotations for GSpawnChildSetupFunc 2017-09-11 21:07:08 +01:00
gstdio.c W32 gstdio: Don't try to get reparse tag unconditionally 2018-04-11 12:51:20 +00:00
gstdio.h Revert "gstdio: #include fcntl.h on UNIX in gstdio.h" 2017-09-12 12:12:27 +01:00
gstdioprivate.h W32: Add a stat() implementation for private use 2017-11-01 12:46:38 +00:00
gstrfuncs.c gstrfuncs: Clarify that g_strv_length() does not accept NULL 2018-04-10 11:04:07 +01:00
gstrfuncs.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gstring.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gstring.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gstringchunk.c Use hash tables as sets in various places 2017-10-26 12:27:17 +01:00
gstringchunk.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gtester-report gtester-report: fix range usage when running as python3 app 2017-12-06 10:07:10 +00:00
gtester.c gtester: fix -Wduplicated-branches 2018-02-16 15:14:39 +00:00
gtestutils.c testutils: Document what happens by default and how to change it 2017-12-18 18:55:46 +00:00
gtestutils.h gtestutils: Add missing include 2017-12-13 13:15:37 +00:00
gthread-posix.c gthread: Fix a typo in an #ifdef on the non-native mutex path 2018-02-06 15:52:29 +00:00
gthread-win32.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gthread.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gthread.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gthreadpool.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gthreadpool.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gthreadprivate.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gtimer.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gtimer.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gtimezone.c gtimezone: Add g_time_zone_new_offset() convenience constructor 2018-04-13 15:25:26 +01:00
gtimezone.h gtimezone: Add g_time_zone_new_offset() convenience constructor 2018-04-13 15:25:26 +01:00
gtranslit-data.h Add locale-sensitive ASCII transliteration API 2014-02-20 18:27:24 -05:00
gtranslit.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gtrashstack.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gtrashstack.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gtree.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gtree.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gtypes.h gmacros: Don't define bogus __has_* macros 2018-03-26 17:12:32 +05:30
gunibreak.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gunibreak.h unicode: Update to unicode 10.0.0 2017-07-05 17:53:07 +02:00
gunichartables.h unicode: Update to unicode 10.0.0 2017-07-05 17:53:07 +02:00
gunicode.h docs: Fix various minor syntax errors in gtk-doc comments 2017-11-07 14:51:12 +00:00
gunicodeprivate.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gunicollate.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gunicomp.h unicode: Update to unicode 7.0.0 2014-06-28 12:49:38 -04:00
gunidecomp.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gunidecomp.h unicode: Update to unicode 10.0.0 2017-07-05 17:53:07 +02:00
guniprop.c unicode: Update to unicode 10.0.0 2017-07-05 17:53:07 +02:00
gurifuncs.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gurifuncs.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gutf8.c docs: Clarify dest requirements of g_utf8_strncpy() 2018-02-03 12:12:28 +01:00
gutils.c gutils: Fix minor memory leak on error path 2017-11-06 10:31:52 +00:00
gutils.h gutils: fix missing include 2018-02-19 11:35:47 +00:00
guuid.c guuid: Remove support for curly braces and URN UUIDs 2017-02-06 14:40:38 +01:00
guuid.h guuid: Add UUID helper functions to GLib 2017-02-06 14:40:38 +01:00
gvariant-core.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gvariant-core.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gvariant-internal.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gvariant-parser.c gvariant: Fix minor memory leak on error handling path 2017-11-08 12:36:26 +00:00
gvariant-serialiser.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gvariant-serialiser.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gvariant.c docs: Remove XML-style comments from documentation strings 2018-01-12 15:29:29 +00:00
gvariant.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gvarianttype.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gvarianttype.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gvarianttypeinfo.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gvarianttypeinfo.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gversion.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gversion.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gversionmacros.h gversionmacros: Add version macros for GLib 2.58 2018-03-13 12:17:31 +00:00
gwakeup.c glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gwakeup.h glib/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gwin32.c W32 - don't use gettext & gcov during gettext init 2017-07-13 01:49:38 +00:00
gwin32.h gwin32: Fix missing prototypes on win64 2017-07-12 22:36:30 +02:00
libglib-gdb.py.in Rename gdb macros with _gdb suffix to avoid ns clashes 2016-05-23 10:52:10 -04:00
Makefile.am build: Ensure .py files are generated at build time not install time 2017-11-03 20:11:56 +00:00
meson.build Meson: Add carbon and cocoa flags into glib and gio pc files 2018-03-28 19:31:25 -04:00
update-gtranslit.py Add locale-sensitive ASCII transliteration API 2014-02-20 18:27:24 -05:00
valgrind.h Doc: glib: Fix all undocumented/unused/undeclared symbols 2014-12-12 11:01:37 -05:00
win_iconv.c win_iconv: Fix some file handler leaks on exit 2016-08-13 10:31:26 +02:00