diff options
author | Petri Hintukainen <phintuka@users.sourceforge.net> | 2012-04-11 13:43:50 +0300 |
---|---|---|
committer | Petri Hintukainen <phintuka@users.sourceforge.net> | 2012-04-11 13:43:50 +0300 |
commit | 02313d506f360392a6e221a31a267f0aa79c0dfb (patch) | |
tree | 18203bba63f81e972629ae6e7129e8cd263fa539 | |
parent | b17ae3df4726af06b97173d0fac3801621765b0d (diff) | |
download | xine-lib-02313d506f360392a6e221a31a267f0aa79c0dfb.tar.gz xine-lib-02313d506f360392a6e221a31a267f0aa79c0dfb.tar.bz2 |
Check read() return value
-rw-r--r-- | src/input/input_dvb.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/input/input_dvb.c b/src/input/input_dvb.c index 0ae209eca..c7ad10e27 100644 --- a/src/input/input_dvb.c +++ b/src/input/input_dvb.c @@ -1455,9 +1455,17 @@ static void load_epg_data(dvb_input_plugin_t *this) return; } n = read(this->tuner->fd_pidfilter[EITFILTER], eit, 3); + if (n != 3) { + xprintf(this->stream->xine,XINE_VERBOSITY_LOG,"Error reading EPG section length\n"); + break; + } /*table_id =*/ getbits(eit, 0, 8); section_len = (unsigned int)getbits(eit, 12, 12); n = read(this->tuner->fd_pidfilter[EITFILTER], eit + 3, section_len); + if (n != section_len) { + xprintf(this->stream->xine,XINE_VERBOSITY_LOG,"Error reading EPG section data\n"); + break; + } service_id = (unsigned int)getbits(eit, 24, 16); |