]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Avoid infinite loop.
authoraurel <aurel@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Tue, 26 Feb 2008 22:35:07 +0000 (22:35 +0000)
committeraurel <aurel@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Tue, 26 Feb 2008 22:35:07 +0000 (22:35 +0000)
uint64_t >> 64 is an undefined operation

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@12253 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavformat/matroskaenc.c

index 2c1f542e1fd665257016e45d7a3200c6b9e97299..092790838743a1f3f343fd7a828b3c3e407819a9 100644 (file)
@@ -149,7 +149,7 @@ static void put_ebml_num(ByteIOContext *pb, uint64_t num, int bytes)
 static void put_ebml_uint(ByteIOContext *pb, unsigned int elementid, uint64_t val)
 {
     int i, bytes = 1;
-    while (val >> bytes*8) bytes++;
+    while (val >> bytes*8 && bytes < 8) bytes++;
 
     put_ebml_id(pb, elementid);
     put_ebml_num(pb, bytes, 0);