From 7b16d4b3b2a46ea3314d0a2f9140f3359750770f Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 5 Jun 2013 02:04:21 +0200 Subject: stream_cdda, stream_vcd: check read buffer size These assumed that the buffer provided with fill_buffer() was at least sector sized, instead of checking the size parameter. This is just a cleanup, since every caller made sure to align everything on sector sizes, if a stream has the sector size set. --- stream/stream_cdda.c | 3 +++ stream/stream_vcd.c | 2 ++ 2 files changed, 5 insertions(+) (limited to 'stream') diff --git a/stream/stream_cdda.c b/stream/stream_cdda.c index a99150f65d..1bec7dcc37 100644 --- a/stream/stream_cdda.c +++ b/stream/stream_cdda.c @@ -196,6 +196,9 @@ static int fill_buffer(stream_t *s, char *buffer, int max_len) int16_t *buf; int i; + if (max_len < CDIO_CD_FRAMESIZE_RAW) + return -1; + if ((p->sector < p->start_sector) || (p->sector > p->end_sector)) { s->eof = 1; return 0; diff --git a/stream/stream_vcd.c b/stream/stream_vcd.c index 1ef9a337de..d8ef552aa5 100644 --- a/stream/stream_vcd.c +++ b/stream/stream_vcd.c @@ -79,6 +79,8 @@ static const struct m_struct_st stream_opts = { static int fill_buffer(stream_t *s, char* buffer, int max_len){ if(s->pos > s->end_pos) /// don't past end of current track return 0; + if (max_len < VCD_SECTOR_DATA) + return -1; return vcd_read(s->priv,buffer); } -- cgit v1.2.3