Only save ibus_addr_file after we've successfully read an address from it.

Fixes https://github.com/libsdl-org/SDL/issues/3359
main
Sam Lantinga 2023-11-05 22:12:37 -08:00
parent 04dfca958a
commit bc3d9e99f3
1 changed files with 5 additions and 3 deletions

View File

@ -560,15 +560,17 @@ SDL_bool SDL_IBus_Init(void)
return SDL_FALSE;
}
/* !!! FIXME: if ibus_addr_file != NULL, this will overwrite it and leak (twice!) */
ibus_addr_file = SDL_strdup(addr_file);
addr = IBus_ReadAddressFromFile(addr_file);
if (addr == NULL) {
SDL_free(addr_file);
return SDL_FALSE;
}
if (ibus_addr_file) {
SDL_free(ibus_addr_file);
}
ibus_addr_file = SDL_strdup(addr_file);
if (inotify_fd < 0) {
inotify_fd = inotify_init();
fcntl(inotify_fd, F_SETFL, O_NONBLOCK);