git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix memory corruption on showSinglePic
[enigma2.git]
/
lib
/
dvb
/
decoder.cpp
diff --git
a/lib/dvb/decoder.cpp
b/lib/dvb/decoder.cpp
index fdd3f8724485ad61498c73e93dc56228916baa27..beec1078fcba12865b54467a0f692967665385a8 100644
(file)
--- a/
lib/dvb/decoder.cpp
+++ b/
lib/dvb/decoder.cpp
@@
-846,20
+846,20
@@
RESULT eTSMPEGDecoder::showSinglePic(const char *filename)
{
int rd;
fseek(f, 0, SEEK_SET);
{
int rd;
fseek(f, 0, SEEK_SET);
+ if (!cnt)
+ {
+ buffer[pos++]=0;
+ buffer[pos++]=0;
+ buffer[pos++]=1;
+ buffer[pos++]=0xE0;
+ buffer[pos++]=(length*3)>>8;
+ buffer[pos++]=(length*3)&0xFF;
+ buffer[pos++]=0x80;
+ buffer[pos++]=0;
+ buffer[pos++]=0;
+ }
while(1)
{
while(1)
{
- if (!cnt)
- {
- buffer[pos++]=0;
- buffer[pos++]=0;
- buffer[pos++]=1;
- buffer[pos++]=0xE0;
- buffer[pos++]=(length*3)>>8;
- buffer[pos++]=(length*3)&0xFF;
- buffer[pos++]=0x80;
- buffer[pos++]=0;
- buffer[pos++]=0;
- }
rd = fread(buffer+pos, 1, length, f);
if (rd > 0)
pos += rd;
rd = fread(buffer+pos, 1, length, f);
if (rd > 0)
pos += rd;