aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2017-01-30 08:42:00 +0200
committerSergey Poznyakoff <gray@gnu.org>2017-01-30 09:11:03 +0200
commitcb959f75e36fbc08105fdc311fddd50516c5f1d8 (patch)
tree5121c771dca5ead89a4802bf38039ea4c990bae7
parent9a286d24b51ab106db6fe389767d79d3f5dea159 (diff)
downloadidest-cb959f75e36fbc08105fdc311fddd50516c5f1d8.tar.gz
idest-cb959f75e36fbc08105fdc311fddd50516c5f1d8.tar.bz2
Bugfix
* libid3tag/tag.c (v1_render): Fix coredump on NULL TRCK value.
-rw-r--r--libid3tag/frame.c3
-rw-r--r--libid3tag/tag.c9
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

Return to:

Send suggestions and report system problems to the System administrator.