mirror of
https://github.com/reactos/reactos.git
synced 2026-05-31 16:31:07 +08:00
[TZLIB] QueryTimeZoneData(): Don't fail if the optional values "Display", "Std", "Dlt" are missing (or too long to be captured). However fail if the timezone information is missing.
This commit is contained in:
@@ -152,6 +152,30 @@ QueryTimeZoneData(
|
||||
LONG lError;
|
||||
DWORD dwValueSize;
|
||||
|
||||
if (Index)
|
||||
{
|
||||
dwValueSize = sizeof(*Index);
|
||||
lError = RegQueryValueExW(hZoneKey,
|
||||
L"Index",
|
||||
NULL,
|
||||
NULL,
|
||||
(LPBYTE)Index,
|
||||
&dwValueSize);
|
||||
if (lError != ERROR_SUCCESS)
|
||||
*Index = 0;
|
||||
}
|
||||
|
||||
/* The time zone information structure is mandatory for a valid time zone */
|
||||
dwValueSize = sizeof(*TimeZoneInfo);
|
||||
lError = RegQueryValueExW(hZoneKey,
|
||||
L"TZI",
|
||||
NULL,
|
||||
NULL,
|
||||
(LPBYTE)TimeZoneInfo,
|
||||
&dwValueSize);
|
||||
if (lError != ERROR_SUCCESS)
|
||||
return lError;
|
||||
|
||||
if (Description && DescriptionSize && *DescriptionSize > 0)
|
||||
{
|
||||
lError = RegQueryValueExW(hZoneKey,
|
||||
@@ -161,7 +185,7 @@ QueryTimeZoneData(
|
||||
(LPBYTE)Description,
|
||||
DescriptionSize);
|
||||
if (lError != ERROR_SUCCESS)
|
||||
return lError;
|
||||
*Description = 0;
|
||||
}
|
||||
|
||||
if (StandardName && StandardNameSize && *StandardNameSize > 0)
|
||||
@@ -173,7 +197,7 @@ QueryTimeZoneData(
|
||||
(LPBYTE)StandardName,
|
||||
StandardNameSize);
|
||||
if (lError != ERROR_SUCCESS)
|
||||
return lError;
|
||||
*StandardName = 0;
|
||||
}
|
||||
|
||||
if (DaylightName && DaylightNameSize && *DaylightNameSize > 0)
|
||||
@@ -185,30 +209,10 @@ QueryTimeZoneData(
|
||||
(LPBYTE)DaylightName,
|
||||
DaylightNameSize);
|
||||
if (lError != ERROR_SUCCESS)
|
||||
return lError;
|
||||
*DaylightName = 0;
|
||||
}
|
||||
|
||||
if (Index)
|
||||
{
|
||||
dwValueSize = sizeof(*Index);
|
||||
lError = RegQueryValueExW(hZoneKey,
|
||||
L"Index",
|
||||
NULL,
|
||||
NULL,
|
||||
(LPBYTE)Index,
|
||||
&dwValueSize);
|
||||
if (lError != ERROR_SUCCESS)
|
||||
return lError;
|
||||
}
|
||||
|
||||
dwValueSize = sizeof(*TimeZoneInfo);
|
||||
lError = RegQueryValueExW(hZoneKey,
|
||||
L"TZI",
|
||||
NULL,
|
||||
NULL,
|
||||
(LPBYTE)TimeZoneInfo,
|
||||
&dwValueSize);
|
||||
return lError;
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user