Fix potential string mishandling in LocalizedTime

Signed-off-by: Selva Nair <selva.nair@gmail.com>
pull/524/head
Selva Nair 2022-06-28 20:37:50 -04:00
parent 788a4c1f9e
commit e5ab9d74bd
1 changed files with 8 additions and 7 deletions

View File

@ -114,16 +114,17 @@ LocalizedSystemTime(const SYSTEMTIME *st, wchar_t *buf, size_t size)
return date_size + time_size;
}
if (size > 0) {
date_size = GetDateFormat(locale, DATE_SHORTDATE, st, NULL,
buf, size);
if (date_size)
buf[date_size - 1] = ' ';
}
if (size - date_size > 0) {
date_size = GetDateFormat(locale, DATE_SHORTDATE, st, NULL,
buf, size);
if (size > (size_t) date_size)
{
time_size = GetTimeFormat(locale, TIME_NOSECONDS, st, NULL,
buf + date_size, size - date_size);
}
if (date_size > 0 && time_size > 0)
{
buf[date_size - 1] = L' '; /* replaces the NUL char in the middle */
}
return date_size + time_size;
}