diff options
Diffstat (limited to 'firmware/id3.c')
-rw-r--r-- | firmware/id3.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/firmware/id3.c b/firmware/id3.c index 2a894aab10..2fd7894de8 100644 --- a/firmware/id3.c +++ b/firmware/id3.c | |||
@@ -512,13 +512,12 @@ static int unicode_len(char encoding, const void* string) | |||
512 | int len = 0; | 512 | int len = 0; |
513 | 513 | ||
514 | if (encoding == 0x01 || encoding == 0x02) { | 514 | if (encoding == 0x01 || encoding == 0x02) { |
515 | bool iswchar; | 515 | char first; |
516 | const char *s = string; | 516 | const char *s = string; |
517 | /* string might be unaligned, so using short* can crash on ARM and SH1 */ | 517 | /* string might be unaligned, so using short* can crash on ARM and SH1 */ |
518 | do { | 518 | do { |
519 | iswchar = (*s++ != 0); | 519 | first = *s++; |
520 | iswchar |= (*s++ != 0); | 520 | } while ((first | *s++) != 0); |
521 | } while (iswchar); | ||
522 | 521 | ||
523 | len = s - (const char*) string; | 522 | len = s - (const char*) string; |
524 | } else { | 523 | } else { |