diff options
author | Max Kellermann <max@duempel.org> | 2011-07-03 14:57:56 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2011-07-03 14:57:56 +0200 |
commit | 6aa6a9c2727c863239d6396a40a781e98e922565 (patch) | |
tree | e67b32b7cf6cffdfc11f4a76db2d9ae190469453 /src/decoder/flac_metadata.c | |
parent | 8d1c7ca2065444dfe2da432a30c95782e3ead48d (diff) | |
download | mpd-6aa6a9c2727c863239d6396a40a781e98e922565.tar.gz mpd-6aa6a9c2727c863239d6396a40a781e98e922565.tar.xz mpd-6aa6a9c2727c863239d6396a40a781e98e922565.zip |
decoder/flac: validate the sample rate when scanning the tag
Don't calculate the song duration when the sample rate is 0 (division
by zero crash).
Diffstat (limited to '')
-rw-r--r-- | src/decoder/flac_metadata.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/decoder/flac_metadata.c b/src/decoder/flac_metadata.c index f2f2f954d..5b94fd426 100644 --- a/src/decoder/flac_metadata.c +++ b/src/decoder/flac_metadata.c @@ -224,7 +224,8 @@ flac_tag_apply_metadata(struct tag *tag, const char *track, break; case FLAC__METADATA_TYPE_STREAMINFO: - tag->time = flac_duration(&block->data.stream_info); + if (block->data.stream_info.sample_rate > 0) + tag->time = flac_duration(&block->data.stream_info); break; default: |