api: only return top two version nibbles

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld 2020-11-03 11:00:53 +01:00
parent dfd71bb954
commit 64f39cd95d
3 changed files with 8 additions and 10 deletions

View File

@ -1070,10 +1070,10 @@ VersionOfInf(_Out_ FILETIME *DriverDate, _Out_ DWORDLONG *DriverVersion)
return ERROR_FILE_NOT_FOUND;
}
static DWORDLONG
static DWORD
VersionOfFile(_In_z_ const WCHAR *Filename)
{
DWORDLONG Version = 0;
DWORD Version = 0;
DWORD Zero;
DWORD Len = GetFileVersionInfoSizeW(Filename, &Zero);
if (!Len)
@ -1096,7 +1096,7 @@ VersionOfFile(_In_z_ const WCHAR *Filename)
LOG_LAST_ERROR(L"Failed to get version info root");
goto out;
}
Version = (DWORDLONG)FixedInfo->dwFileVersionLS | ((DWORDLONG)FixedInfo->dwFileVersionMS << 32);
Version = FixedInfo->dwFileVersionMS;
out:
HeapFree(ModuleHeap, 0, VersionInfo);
return Version;
@ -1125,10 +1125,10 @@ CreateTemporaryDirectory(_Out_cap_c_(MAX_PATH) WCHAR *RandomTempSubDirectory)
return ERROR_SUCCESS;
}
DWORDLONG
DWORD
WintunGetVersion(void)
{
DWORDLONG Version = 0;
DWORD Version = 0;
PRTL_PROCESS_MODULES Modules;
ULONG BufferSize = 128 * 1024;
for (;;)

View File

@ -190,7 +190,7 @@ typedef WINTUN_STATUS(
*
* @return The version number on success, or 0 if failure or Wintun not loaded.
*/
typedef DWORDLONG(WINAPI *WINTUN_GET_VERSION_FUNC)(void);
typedef DWORD(WINAPI *WINTUN_GET_VERSION_FUNC)(void);
typedef enum _WINTUN_LOGGER_LEVEL
{

View File

@ -314,11 +314,9 @@ main(void)
goto cleanupQuit;
}
DWORDLONG Version = WintunGetVersion();
DWORD Version = WintunGetVersion();
Log(WINTUN_LOG_INFO,
L"Wintun v%d.%d.%d.%d loaded",
(Version >> 48) & 0xff,
(Version >> 32) & 0xff,
L"Wintun v%u.%u loaded",
(Version >> 16) & 0xff,
(Version >> 0) & 0xff);