Messages in this thread | | | Date | Fri, 12 Aug 2011 16:29:17 -0700 | Subject | Re: [PATCH] rtc: Initialized rtc_time->tm_isdst | From | john stultz <> |
| |
On Fri, Aug 12, 2011 at 2:04 PM, Mike Waychison <mikew@google.com> wrote: > Even though the Linux kernel does not use the tm_isdst field, it is > exposed as part of the ABI. This field can accidentally be left > initialized, which is why we currently memset buffers returned to > userland in rtc_read_time. > > There is a case however where the field can return garbage from the > stack though when using the RTC_ALM_READ ioctl on the rtc device. This > ioctl invokes rtc_read_alarm, which is careful to memset the rtc_wkalrm > buffer that is copied to userland, but it then uses a struct copy to > assign to alarm->time given the return value from rtc_ktime_to_tm(). > > rtc_ktime_to_tm() is implemented by calling rtc_time_to_tm using a > derivative seconds counds from ktime, but rtc_time_to_tm does not assign > a value to ->tm_isdst. This results in garbage from rtc_ktime_to_tm()'s > frame ending up being copied out to userland as part of the returned > rtc_wkalrm.
Thanks for catching this! I've queued this in my tree.
thanks -john -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |