X-Git-Url: https://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git;a=blobdiff_plain;f=src%2Finterfaces%2Ftimedated%2Ftimedated.c;h=cba6138bada05a77383bbb42ec5d34f626091e2b;hp=d4b0dceea6eb553a2c1923a579daf0c50258fe09;hb=06407d3ed6ecd095261823d3c488d1947c9a19c3;hpb=c8a3e18eb82223e010f8adfae4a85b426a101a65 diff --git a/src/interfaces/timedated/timedated.c b/src/interfaces/timedated/timedated.c index d4b0dce..cba6138 100644 --- a/src/interfaces/timedated/timedated.c +++ b/src/interfaces/timedated/timedated.c @@ -219,7 +219,11 @@ on_handle_set_timezone(Timedate1 *td1_passed_interf, strlcat(tz_target_path, "/", TZNAME_MAX); strlcat(tz_target_path, proposed_tz, TZNAME_MAX); - g_printf("%s\n", tz_target_path); + if(strstr(tz_target_path, "../")) { + + g_dbus_method_invocation_return_dbus_error(invoc, "org.freedesktop.timedate1.Error.EBADF", "Provided timezone is invalid."); + return FALSE; + } if(!statbuf) return FALSE; @@ -266,7 +270,9 @@ on_handle_set_local_rtc(Timedate1 *td1_passed_interf, GDBusMethodInvocation *invoc, const gchar *greet, gpointer data) { - return FALSE; + + g_dbus_method_invocation_return_dbus_error(invoc, "org.freedesktop.timedate1.Error.ENODEV", "Unix RTC must be in UTC."); + return TRUE; } static gboolean @@ -324,6 +330,7 @@ our_get_timezone() { return ret; } +/* Unix time must be in UTC. */ gboolean our_get_local_rtc() {