diff options
author | Jochen Dolze <vdr@dolze.de> | 2009-09-27 22:26:49 +0200 |
---|---|---|
committer | Jochen Dolze <vdr@dolze.de> | 2009-09-27 22:26:49 +0200 |
commit | 577280a1796e5cf90d5eb05d2232690ab83f0bd8 (patch) | |
tree | 6c1649383e36806fb1e153d8aa59bd2c211334a6 /ts2pkt.cpp | |
parent | 36cba6f238db17094e18ca3144bd7d5d8a4ffdf0 (diff) | |
download | vdr-plugin-markad-577280a1796e5cf90d5eb05d2232690ab83f0bd8.tar.gz vdr-plugin-markad-577280a1796e5cf90d5eb05d2232690ab83f0bd8.tar.bz2 |
Check buffer length for zero size
Diffstat (limited to 'ts2pkt.cpp')
-rw-r--r-- | ts2pkt.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -235,7 +235,7 @@ int cMarkAdTS2Pkt::Process(MarkAdPid Pid, uchar *TSData, int TSSize, uchar **Pkt Reset(MA_ERR_TOBIG); return TS_SIZE; } - if (buflen<0) + if (buflen<=0) { // error in size Reset(MA_ERR_NEG); @@ -307,7 +307,11 @@ int cMarkAdTS2Pkt::Process(MarkAdPid Pid, uchar *TSData, int TSSize, uchar **Pkt pktdatalast=pktdata; int bufleftsize=pktsize-(pktinfo.pkthdr+size); - + if (bufleftsize<=0) + { + Reset(MA_ERR_NEG); + return bytes_processed; + } uchar *bufleft=(uchar *) malloc(bufleftsize); if (!bufleft) { |