From 35921f83f90ffc7f6c2648bc4e980e382e108266 Mon Sep 17 00:00:00 2001 From: Oreo639 Date: Tue, 30 Apr 2019 19:48:31 -0700 Subject: [PATCH] Add max_size to miiSelectorReturnGet functions --- libctru/include/3ds/applets/miiselector.h | 13 +++++++++---- libctru/source/applets/miiselector.c | 10 +++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/libctru/include/3ds/applets/miiselector.h b/libctru/include/3ds/applets/miiselector.h index 8d03603..6a187b1 100644 --- a/libctru/include/3ds/applets/miiselector.h +++ b/libctru/include/3ds/applets/miiselector.h @@ -159,17 +159,22 @@ void miiSelectorSetInitalIndex(MiiSelectorConf *conf, u32 index); * @brief Get Mii name * * @param returnbuf Pointer to miiSelector return - * @param out String containing a Mii's name (a length of at least 36 is expected) + * @param out String containing a Mii's name + * @param max_size Size of string. Since UTF8 characters range in size from 1-3 bytes + * (assuming that no non-BMP characters are used), this value should be 36 (or 30 if you are not + * dealing with guest miis). */ -void miiSelectorReturnGetName(const MiiSelectorReturn *returnbuf, char* out); +void miiSelectorReturnGetName(const MiiSelectorReturn *returnbuf, char* out, size_t max_size); /** * @brief Get Mii Author * * @param returnbuf Pointer to miiSelector return - * @param out String containing a Mii's author (a length of at least 30 is expected) + * @param out String containing a Mii's author + * @param max_size Size of string. Since UTF8 characters range in size from 1-3 bytes + * (assuming that no non-BMP characters are used), this value should be 30. */ -void miiSelectorReturnGetAuthor(const MiiSelectorReturn *returnbuf, char* out); +void miiSelectorReturnGetAuthor(const MiiSelectorReturn *returnbuf, char* out, size_t max_size); /** * @brief Verifies that the Mii data returned from the applet matches its diff --git a/libctru/source/applets/miiselector.c b/libctru/source/applets/miiselector.c index a00c98e..ea95c01 100644 --- a/libctru/source/applets/miiselector.c +++ b/libctru/source/applets/miiselector.c @@ -130,23 +130,23 @@ void miiSelectorSetInitalIndex(MiiSelectorConf *conf, u32 index) { conf->initial_index = index; } -void miiSelectorReturnGetName(const MiiSelectorReturn *returnbuf, char* out) +void miiSelectorReturnGetName(const MiiSelectorReturn *returnbuf, char* out, size_t max_size) { if (!out) return; if (returnbuf->guest_mii_was_selected) - miiSelectorConvertToUTF8(out, returnbuf->guest_mii_name, 36); + miiSelectorConvertToUTF8(out, returnbuf->guest_mii_name, max_size); else - miiSelectorConvertToUTF8(out, returnbuf->mii.mii_name, 36); + miiSelectorConvertToUTF8(out, returnbuf->mii.mii_name, max_size); } -void miiSelectorReturnGetAuthor(const MiiSelectorReturn *returnbuf, char* out) +void miiSelectorReturnGetAuthor(const MiiSelectorReturn *returnbuf, char* out, size_t max_size) { if (!out) return; - miiSelectorConvertToUTF8(out, returnbuf->mii.author_name, 30); + miiSelectorConvertToUTF8(out, returnbuf->mii.author_name, max_size); } static u16 crc16_ccitt(void const *buf, size_t len, uint32_t starting_val)