diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2017-01-30 08:42:00 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2017-01-30 09:11:03 +0200 |
commit | cb959f75e36fbc08105fdc311fddd50516c5f1d8 (patch) | |
tree | 5121c771dca5ead89a4802bf38039ea4c990bae7 | |
parent | 9a286d24b51ab106db6fe389767d79d3f5dea159 (diff) | |
download | idest-cb959f75e36fbc08105fdc311fddd50516c5f1d8.tar.gz idest-cb959f75e36fbc08105fdc311fddd50516c5f1d8.tar.bz2 |
Bugfix
* libid3tag/tag.c (v1_render): Fix coredump on NULL TRCK value.
-rw-r--r-- | libid3tag/frame.c | 3 | ||||
-rw-r--r-- | libid3tag/tag.c | 9 |
2 files changed, 6 insertions, 6 deletions
diff --git a/libid3tag/frame.c b/libid3tag/frame.c index 21f987a..4b24a7d 100644 --- a/libid3tag/frame.c +++ b/libid3tag/frame.c @@ -256,8 +256,7 @@ parse_data(struct id3_frame *frame, end = data + length; for (i = 0; i < frame->nfields; ++i) { - if (id3_field_parse - (&frame->fields[i], &data, end - data, + if (id3_field_parse(&frame->fields[i], &data, end - data, &encoding) == -1) return -1; } diff --git a/libid3tag/tag.c b/libid3tag/tag.c index 4473bcc..80e59b8 100644 --- a/libid3tag/tag.c +++ b/libid3tag/tag.c @@ -779,16 +779,17 @@ v1_render(struct id3_tag const *tag, id3_byte_t * buffer) frame = id3_tag_findframe(tag, ID3_FRAME_TRACK, 0); if (frame) { - unsigned int track; + id3_ucs4_t const *s; - track = - id3_ucs4_getnumber(id3_field_getstrings - (&frame->fields[1], 0)); + s = id3_field_getstrings(&frame->fields[1], 0); + if (s) { + unsigned int track = id3_ucs4_getnumber(s); if (track > 0 && track <= 0xff) { ptr[-2] = 0; ptr[-1] = track; } } + } /* * ID3v1 genre number |