diff --git a/source/ui/section/task/listextsavedata.c b/source/ui/section/task/listextsavedata.c index ef94a4b..b3791a2 100644 --- a/source/ui/section/task/listextsavedata.c +++ b/source/ui/section/task/listextsavedata.c @@ -50,12 +50,12 @@ static Result task_populate_ext_save_data_from(populate_ext_save_data_data* data u8 systemLanguage = CFG_LANGUAGE_EN; CFGU_GetSystemLanguage(&systemLanguage); - utf16_to_utf8((uint8_t*) item->name, smdh.titles[systemLanguage].shortDescription, NAME_MAX); + utf16_to_utf8((uint8_t*) item->name, smdh.titles[systemLanguage].shortDescription, NAME_MAX - 1); extSaveDataInfo->hasMeta = true; - utf16_to_utf8((uint8_t*) extSaveDataInfo->meta.shortDescription, smdh.titles[systemLanguage].shortDescription, sizeof(extSaveDataInfo->meta.shortDescription)); - utf16_to_utf8((uint8_t*) extSaveDataInfo->meta.longDescription, smdh.titles[systemLanguage].longDescription, sizeof(extSaveDataInfo->meta.longDescription)); - utf16_to_utf8((uint8_t*) extSaveDataInfo->meta.publisher, smdh.titles[systemLanguage].publisher, sizeof(extSaveDataInfo->meta.publisher)); + utf16_to_utf8((uint8_t*) extSaveDataInfo->meta.shortDescription, smdh.titles[systemLanguage].shortDescription, sizeof(extSaveDataInfo->meta.shortDescription) - 1); + utf16_to_utf8((uint8_t*) extSaveDataInfo->meta.longDescription, smdh.titles[systemLanguage].longDescription, sizeof(extSaveDataInfo->meta.longDescription) - 1); + utf16_to_utf8((uint8_t*) extSaveDataInfo->meta.publisher, smdh.titles[systemLanguage].publisher, sizeof(extSaveDataInfo->meta.publisher) - 1); extSaveDataInfo->meta.texture = screen_load_texture_tiled_auto(smdh.largeIcon, sizeof(smdh.largeIcon), 48, 48, GPU_RGB565, false); } diff --git a/source/ui/section/task/listfiles.c b/source/ui/section/task/listfiles.c index d1d6b1b..93ce1ee 100644 --- a/source/ui/section/task/listfiles.c +++ b/source/ui/section/task/listfiles.c @@ -51,18 +51,15 @@ static void task_populate_files_thread(void* arg) { file_info* fileInfo = (file_info*) calloc(1, sizeof(file_info)); if(fileInfo != NULL) { - char entryName[0x213] = {'\0'}; - utf16_to_utf8((uint8_t*) entryName, entries[i].name, sizeof(entryName) - 1); - fileInfo->archive = data->dir->archive; - strncpy(fileInfo->name, entryName, NAME_MAX); + utf16_to_utf8((uint8_t*) fileInfo->name, entries[i].name, NAME_MAX - 1); list_item* item = &data->items[*data->count]; if(entries[i].attributes & FS_ATTRIBUTE_DIRECTORY) { item->rgba = COLOR_DIRECTORY; - snprintf(fileInfo->path, PATH_MAX, "%s%s/", data->dir->path, entryName); + snprintf(fileInfo->path, PATH_MAX, "%s%s/", data->dir->path, fileInfo->name); fileInfo->isDirectory = true; fileInfo->containsCias = false; fileInfo->size = 0; @@ -70,7 +67,7 @@ static void task_populate_files_thread(void* arg) { } else { item->rgba = COLOR_TEXT; - snprintf(fileInfo->path, PATH_MAX, "%s%s", data->dir->path, entryName); + snprintf(fileInfo->path, PATH_MAX, "%s%s", data->dir->path, fileInfo->name); fileInfo->isDirectory = false; fileInfo->containsCias = false; fileInfo->size = 0; @@ -104,9 +101,9 @@ static void task_populate_files_thread(void* arg) { CFGU_GetSystemLanguage(&systemLanguage); fileInfo->ciaInfo.hasMeta = true; - utf16_to_utf8((uint8_t*) fileInfo->ciaInfo.meta.shortDescription, smdh.titles[systemLanguage].shortDescription, sizeof(fileInfo->ciaInfo.meta.shortDescription)); - utf16_to_utf8((uint8_t*) fileInfo->ciaInfo.meta.longDescription, smdh.titles[systemLanguage].longDescription, sizeof(fileInfo->ciaInfo.meta.longDescription)); - utf16_to_utf8((uint8_t*) fileInfo->ciaInfo.meta.publisher, smdh.titles[systemLanguage].publisher, sizeof(fileInfo->ciaInfo.meta.publisher)); + utf16_to_utf8((uint8_t*) fileInfo->ciaInfo.meta.shortDescription, smdh.titles[systemLanguage].shortDescription, sizeof(fileInfo->ciaInfo.meta.shortDescription) - 1); + utf16_to_utf8((uint8_t*) fileInfo->ciaInfo.meta.longDescription, smdh.titles[systemLanguage].longDescription, sizeof(fileInfo->ciaInfo.meta.longDescription) - 1); + utf16_to_utf8((uint8_t*) fileInfo->ciaInfo.meta.publisher, smdh.titles[systemLanguage].publisher, sizeof(fileInfo->ciaInfo.meta.publisher) - 1); fileInfo->ciaInfo.meta.texture = screen_load_texture_tiled_auto(smdh.largeIcon, sizeof(smdh.largeIcon), 48, 48, GPU_RGB565, false); } } @@ -136,7 +133,7 @@ static void task_populate_files_thread(void* arg) { } } - strncpy(item->name, entryName, NAME_MAX); + strncpy(item->name, fileInfo->name, NAME_MAX); item->data = fileInfo; (*data->count)++; diff --git a/source/ui/section/task/listtitles.c b/source/ui/section/task/listtitles.c index 0d8bcf5..c59435a 100644 --- a/source/ui/section/task/listtitles.c +++ b/source/ui/section/task/listtitles.c @@ -55,11 +55,11 @@ static Result task_populate_titles_add_ctr(populate_titles_data* data, FS_MediaT u8 systemLanguage = CFG_LANGUAGE_EN; CFGU_GetSystemLanguage(&systemLanguage); - utf16_to_utf8((uint8_t*) item->name, smdh->titles[systemLanguage].shortDescription, NAME_MAX); + utf16_to_utf8((uint8_t*) item->name, smdh->titles[systemLanguage].shortDescription, NAME_MAX - 1); - utf16_to_utf8((uint8_t*) titleInfo->meta.shortDescription, smdh->titles[systemLanguage].shortDescription, sizeof(titleInfo->meta.shortDescription)); - utf16_to_utf8((uint8_t*) titleInfo->meta.longDescription, smdh->titles[systemLanguage].longDescription, sizeof(titleInfo->meta.longDescription)); - utf16_to_utf8((uint8_t*) titleInfo->meta.publisher, smdh->titles[systemLanguage].publisher, sizeof(titleInfo->meta.publisher)); + utf16_to_utf8((uint8_t*) titleInfo->meta.shortDescription, smdh->titles[systemLanguage].shortDescription, sizeof(titleInfo->meta.shortDescription) - 1); + utf16_to_utf8((uint8_t*) titleInfo->meta.longDescription, smdh->titles[systemLanguage].longDescription, sizeof(titleInfo->meta.longDescription) - 1); + utf16_to_utf8((uint8_t*) titleInfo->meta.publisher, smdh->titles[systemLanguage].publisher, sizeof(titleInfo->meta.publisher) - 1); titleInfo->meta.texture = screen_load_texture_tiled_auto(smdh->largeIcon, sizeof(smdh->largeIcon), 48, 48, GPU_RGB565, false); } } @@ -160,7 +160,7 @@ static Result task_populate_titles_add_twl(populate_titles_data* data, FS_MediaT CFGU_GetSystemLanguage(&systemLanguage); char title[0x100] = {'\0'}; - utf16_to_utf8((uint8_t*) title, bnr->titles[systemLanguage], 0x100); + utf16_to_utf8((uint8_t*) title, bnr->titles[systemLanguage], sizeof(title) - 1); if(strchr(title, '\n') == NULL) { size_t len = strlen(title);