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)