matroska: do not lose the top bits when writing a > 32 bit value
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Fri, 2 May 2014 12:29:33 +0000 (13:29 +0100)
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Fri, 2 May 2014 12:29:33 +0000 (13:29 +0100)
Coverity 1139806

gst/matroska/ebml-write.c

index d39a23a..2c734f0 100644 (file)
@@ -619,9 +619,9 @@ gst_ebml_write_sint (GstEbmlWrite * ebml, guint32 id, gint64 num)
   if (num >= 0) {
     unum = num;
   } else {
-    unum = 0x80 << (size - 1);
+    unum = ((guint64) 0x80) << (size - 1);
     unum += num;
-    unum |= 0x80 << (size - 1);
+    unum |= ((guint64) 0x80) << (size - 1);
   }
 
   /* write */