From e1c991185c594db7cc8978ed0239ebca4d37560e Mon Sep 17 00:00:00 2001 From: root Date: Wed, 16 Jan 2013 00:05:27 -0800 Subject: Wed Jan 16 00:05:27 PST 2013 --- ...dbus-fix-serialization-of-calendar-timers.patch | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 core/systemd/0001-dbus-fix-serialization-of-calendar-timers.patch (limited to 'core/systemd/0001-dbus-fix-serialization-of-calendar-timers.patch') diff --git a/core/systemd/0001-dbus-fix-serialization-of-calendar-timers.patch b/core/systemd/0001-dbus-fix-serialization-of-calendar-timers.patch new file mode 100644 index 000000000..0d9f1251d --- /dev/null +++ b/core/systemd/0001-dbus-fix-serialization-of-calendar-timers.patch @@ -0,0 +1,62 @@ +From 3761902e2e120849c283106fd4b78b6adec7367e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 8 Jan 2013 20:00:01 +0100 +Subject: [PATCH] dbus: fix serialization of calendar timers + +--- + src/core/dbus-timer.c | 25 +++++++++++++++---------- + 1 file changed, 15 insertions(+), 10 deletions(-) + +diff --git a/src/core/dbus-timer.c b/src/core/dbus-timer.c +index 11d18cb..b22fcb5 100644 +--- a/src/core/dbus-timer.c ++++ b/src/core/dbus-timer.c +@@ -69,22 +69,28 @@ static int bus_timer_append_timers(DBusMessageIter *i, const char *property, voi + return -ENOMEM; + + LIST_FOREACH(value, k, p->values) { +- char *buf; ++ _cleanup_free_ char *buf = NULL; + const char *t; + size_t l; + bool b; + + t = timer_base_to_string(k->base); +- assert(endswith(t, "Sec")); + +- /* s/Sec/USec/ */ +- l = strlen(t); +- buf = new(char, l+2); +- if (!buf) +- return -ENOMEM; ++ if (endswith(t, "Sec")) { ++ ++ /* s/Sec/USec/ */ ++ l = strlen(t); ++ buf = new(char, l+2); ++ if (!buf) ++ return -ENOMEM; + +- memcpy(buf, t, l-3); +- memcpy(buf+l-3, "USec", 5); ++ memcpy(buf, t, l-3); ++ memcpy(buf+l-3, "USec", 5); ++ } else { ++ buf = strdup(t); ++ if (!buf) ++ return -ENOMEM; ++ } + + b = dbus_message_iter_open_container(&sub, DBUS_TYPE_STRUCT, NULL, &sub2) && + dbus_message_iter_append_basic(&sub2, DBUS_TYPE_STRING, &buf) && +@@ -92,7 +98,6 @@ static int bus_timer_append_timers(DBusMessageIter *i, const char *property, voi + dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &k->next_elapse) && + dbus_message_iter_close_container(&sub, &sub2); + +- free(buf); + if (!b) + return -ENOMEM; + } +-- +1.8.1 + -- cgit v1.2.3-54-g00ecf