Add max_size to miiSelectorReturnGet functions

This commit is contained in:
Oreo639 2019-04-30 19:48:31 -07:00
parent 7671241c9c
commit 35921f83f9
2 changed files with 14 additions and 9 deletions

View File

@ -159,17 +159,22 @@ void miiSelectorSetInitalIndex(MiiSelectorConf *conf, u32 index);
* @brief Get Mii name * @brief Get Mii name
* *
* @param returnbuf Pointer to miiSelector return * @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 * @brief Get Mii Author
* *
* @param returnbuf Pointer to miiSelector return * @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 * @brief Verifies that the Mii data returned from the applet matches its

View File

@ -130,23 +130,23 @@ void miiSelectorSetInitalIndex(MiiSelectorConf *conf, u32 index) {
conf->initial_index = 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) if (!out)
return; return;
if (returnbuf->guest_mii_was_selected) if (returnbuf->guest_mii_was_selected)
miiSelectorConvertToUTF8(out, returnbuf->guest_mii_name, 36); miiSelectorConvertToUTF8(out, returnbuf->guest_mii_name, max_size);
else 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) if (!out)
return; 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) static u16 crc16_ccitt(void const *buf, size_t len, uint32_t starting_val)