Ensure the C strings stay valid until connection-time. Fixes #228

This commit is contained in:
Cameron Gutman
2018-06-09 20:04:40 -07:00
parent de39c87185
commit 98d01f7775
+19 -4
View File
@@ -21,6 +21,9 @@
CONNECTION_LISTENER_CALLBACKS _clCallbacks; CONNECTION_LISTENER_CALLBACKS _clCallbacks;
DECODER_RENDERER_CALLBACKS _drCallbacks; DECODER_RENDERER_CALLBACKS _drCallbacks;
AUDIO_RENDERER_CALLBACKS _arCallbacks; AUDIO_RENDERER_CALLBACKS _arCallbacks;
char _hostString[256];
char _appVersionString[32];
char _gfeVersionString[32];
} }
static NSLock* initLock; static NSLock* initLock;
@@ -268,11 +271,23 @@ void ClLogMessage(const char* format, ...)
initLock = [[NSLock alloc] init]; initLock = [[NSLock alloc] init];
} }
LiInitializeServerInformation(&_serverInfo); strncpy(_hostString,
_serverInfo.address = [config.host cStringUsingEncoding:NSUTF8StringEncoding]; [config.host cStringUsingEncoding:NSUTF8StringEncoding],
_serverInfo.serverInfoAppVersion = [config.appVersion cStringUsingEncoding:NSUTF8StringEncoding]; sizeof(_hostString));
strncpy(_appVersionString,
[config.appVersion cStringUsingEncoding:NSUTF8StringEncoding],
sizeof(_appVersionString));
if (config.gfeVersion != nil) { if (config.gfeVersion != nil) {
_serverInfo.serverInfoGfeVersion = [config.gfeVersion cStringUsingEncoding:NSUTF8StringEncoding]; strncpy(_gfeVersionString,
[config.gfeVersion cStringUsingEncoding:NSUTF8StringEncoding],
sizeof(_gfeVersionString));
}
LiInitializeServerInformation(&_serverInfo);
_serverInfo.address = _hostString;
_serverInfo.serverInfoAppVersion = _appVersionString;
if (config.gfeVersion != nil) {
_serverInfo.serverInfoGfeVersion = _gfeVersionString;
} }
renderer = myRenderer; renderer = myRenderer;