diff --git a/core/linux-dist/main.cpp b/core/linux-dist/main.cpp index b8b45beaa..64a46f5dc 100755 --- a/core/linux-dist/main.cpp +++ b/core/linux-dist/main.cpp @@ -138,7 +138,9 @@ void SetupInput() size_needed = snprintf(NULL, 0, EVDEV_MAPPING_CONFIG_KEY, port+1) + 1; evdev_config_key = (char*)malloc(size_needed); sprintf(evdev_config_key, EVDEV_MAPPING_CONFIG_KEY, port+1); - const char* mapping = (cfgExists("input", evdev_config_key) == 2 ? cfgLoadStr("input", evdev_config_key, "").c_str() : NULL); + + string tmp; + const char* mapping = (cfgExists("input", evdev_config_key) == 2 ? (tmp = cfgLoadStr("input", evdev_config_key, "")).c_str() : NULL); free(evdev_config_key); input_evdev_init(&evdev_controllers[port], evdev_device, mapping);