SteamInternal_CreateInterface should return NULL if not called with "SteamClient"

This commit is contained in:
Mr_Goldberg 2019-07-12 15:54:26 -04:00
parent 6dd7f517e6
commit f3e968b54c
No known key found for this signature in database
GPG key ID: 8597D87419DEF278
2 changed files with 34 additions and 31 deletions

View file

@ -135,38 +135,43 @@ Steam_Client *get_steam_clientserver_old()
S_API void * S_CALLTYPE SteamInternal_CreateInterface( const char *ver ) S_API void * S_CALLTYPE SteamInternal_CreateInterface( const char *ver )
{ {
PRINT_DEBUG("SteamInternal_CreateInterface %s\n", ver); PRINT_DEBUG("SteamInternal_CreateInterface %s\n", ver);
void *steam_client;
if (strcmp(ver, "SteamClient007") == 0) { if (strstr(ver, "SteamClient") == ver) {
steam_client = (ISteamClient007 *)get_steam_client(); void *steam_client;
} else if (strcmp(ver, "SteamClient008") == 0) {
steam_client = (ISteamClient008 *)get_steam_client(); if (strcmp(ver, "SteamClient007") == 0) {
} else if (strcmp(ver, "SteamClient009") == 0) { steam_client = (ISteamClient007 *)get_steam_client();
steam_client = (ISteamClient009 *)get_steam_client(); } else if (strcmp(ver, "SteamClient008") == 0) {
} else if (strcmp(ver, "SteamClient010") == 0) { steam_client = (ISteamClient008 *)get_steam_client();
steam_client = (ISteamClient010 *)get_steam_client(); } else if (strcmp(ver, "SteamClient009") == 0) {
} else if (strcmp(ver, "SteamClient011") == 0) { steam_client = (ISteamClient009 *)get_steam_client();
steam_client = (ISteamClient011 *)get_steam_client(); } else if (strcmp(ver, "SteamClient010") == 0) {
} else if (strcmp(ver, "SteamClient012") == 0) { steam_client = (ISteamClient010 *)get_steam_client();
steam_client = (ISteamClient012 *)get_steam_client(); } else if (strcmp(ver, "SteamClient011") == 0) {
} else if (strcmp(ver, "SteamClient013") == 0) { steam_client = (ISteamClient011 *)get_steam_client();
steam_client = (ISteamClient013 *)get_steam_client(); } else if (strcmp(ver, "SteamClient012") == 0) {
} else if (strcmp(ver, "SteamClient014") == 0) { steam_client = (ISteamClient012 *)get_steam_client();
steam_client = (ISteamClient014 *)get_steam_client(); } else if (strcmp(ver, "SteamClient013") == 0) {
} else if (strcmp(ver, "SteamClient015") == 0) { steam_client = (ISteamClient013 *)get_steam_client();
steam_client = (ISteamClient015 *)get_steam_client(); } else if (strcmp(ver, "SteamClient014") == 0) {
} else if (strcmp(ver, "SteamClient016") == 0) { steam_client = (ISteamClient014 *)get_steam_client();
steam_client = (ISteamClient016 *)get_steam_client(); } else if (strcmp(ver, "SteamClient015") == 0) {
} else if (strcmp(ver, "SteamClient017") == 0) { steam_client = (ISteamClient015 *)get_steam_client();
steam_client = (ISteamClient017 *)get_steam_client(); } else if (strcmp(ver, "SteamClient016") == 0) {
} else if (strcmp(ver, STEAMCLIENT_INTERFACE_VERSION) == 0) { steam_client = (ISteamClient016 *)get_steam_client();
steam_client = (ISteamClient *)get_steam_client(); } else if (strcmp(ver, "SteamClient017") == 0) {
steam_client = (ISteamClient017 *)get_steam_client();
} else if (strcmp(ver, STEAMCLIENT_INTERFACE_VERSION) == 0) {
steam_client = (ISteamClient *)get_steam_client();
} else {
steam_client = (ISteamClient *)get_steam_client();
}
if (steam_client) g_pSteamClientGameServer = (ISteamClient *)steam_client;
return steam_client;
} else { } else {
steam_client = (ISteamClient *)get_steam_client(); return NULL;
} }
if (steam_client) g_pSteamClientGameServer = (ISteamClient *)steam_client;
return steam_client;
} }
struct ContextInitData { void (*pFn)(void* pCtx); uintp counter; CSteamAPIContext ctx; }; struct ContextInitData { void (*pFn)(void* pCtx); uintp counter; CSteamAPIContext ctx; };

View file

@ -699,8 +699,6 @@ void *Steam_Client::GetISteamGenericInterface( HSteamUser hSteamUser, HSteamPipe
return GetISteamGameServerStats(hSteamUser, hSteamPipe, pchVersion); return GetISteamGameServerStats(hSteamUser, hSteamPipe, pchVersion);
} else if (strstr(pchVersion, "SteamMatchMakingServers") == pchVersion) { } else if (strstr(pchVersion, "SteamMatchMakingServers") == pchVersion) {
return GetISteamMatchmakingServers(hSteamUser, hSteamPipe, pchVersion); return GetISteamMatchmakingServers(hSteamUser, hSteamPipe, pchVersion);
} else if (strstr(pchVersion, "STEAMREMOTESTORAGE_INTERFACE_VERSION") == pchVersion) {
return GetISteamRemoteStorage(hSteamUser, hSteamPipe, pchVersion);
} else if (strstr(pchVersion, "SteamFriends") == pchVersion) { } else if (strstr(pchVersion, "SteamFriends") == pchVersion) {
return GetISteamFriends(hSteamUser, hSteamPipe, pchVersion); return GetISteamFriends(hSteamUser, hSteamPipe, pchVersion);
} else if (strstr(pchVersion, "SteamMatchMaking") == pchVersion) { } else if (strstr(pchVersion, "SteamMatchMaking") == pchVersion) {