Commit Graph

86 Commits

Author SHA1 Message Date
Moritz Bunkus
580add661f Bump version number, add release message 2015-10-20 15:05:13 +02:00
Moritz Bunkus
88409e2a94 EbmlMaster: propagate upper level element after infinite sized one correctly
When the parser encountered a deeply nested element with an infinite
size then a following element of an upper level was not propagated
correctly. Instead the element with the infinite size was added into the
EBML element tree a second time resulting in memory access after freeing
it and multiple attempts to free the same memory address during
destruction.

Fixes the issue reported as Cisco TALOS-CAN-0037.
2015-10-20 14:54:55 +02:00
Moritz Bunkus
24e5cd7c66 EbmlElement: don't read beyond end of buffer when reading variable length integers 2015-10-20 14:54:55 +02:00
Moritz Bunkus
12b560adc2 EbmlMaster.cpp: unwrap huge if; fix indentation 2015-10-20 14:54:55 +02:00
Moritz Bunkus
ababb64e0c EbmlUnicodeString: don't read beyond end of string
The conversion from an UTF-8 encoded string into a wchar_t one was
reading from beyond the end of the source buffer if the length indicated
by a UTF-8 character's first byte exceeds the number of bytes actually
present afterwards.

Fixes the issue reported as Cisco TALOS-CAN-0036.
2015-10-20 14:54:55 +02:00
Moritz Bunkus
c161e600b3 Bump version number, add release message 2015-10-17 15:47:22 +02:00
Steve Lhomme
642c3c4e27 detect EOF when reading the element size, similar to when reading the element id 2015-08-21 15:42:12 +02:00
Steve Lhomme
8427995f27 Merge pull request #2 from RedDwarf69/master
Update licensing information (FSF address)
2015-06-12 07:41:18 +02:00
Moritz Bunkus
b1a4c9ac00 EbmlElement: don't catch exceptions when writing elements 2015-01-04 15:05:42 +01:00
Moritz Bunkus
8055be972c EbmlMaster::Read(): drop elements with unset values in SCOPE_FULL_DATA mode
This prevents elements that couldn't be read properly (e.g. due to
defective data) from being handed over to the calling code in at best
half initialized state. See https://trac.bunkus.org/ticket/1096
2014-12-20 17:30:06 +01:00
Moritz Bunkus
6ba868a49b MemReadIOCallback, SafeReadIOCallback: add new classes for safe (memory) reading
squash! EbmlMemoryStream: add new class for safe memory reading
2014-12-20 17:29:48 +01:00
Moritz Bunkus
ce72b9266a cosmetics: unify indentation 2014-12-19 14:40:44 +01:00
Moritz Bunkus
34554928aa cosmetics: use spaces instead of tab characters; remove trailing whitespace 2014-12-19 00:23:13 +01:00
Moritz Bunkus
dc9a431375 version: bump version to 1.3.1 2014-12-19 00:20:32 +01:00
Moritz Bunkus
95ff31de88 EbmlMaster: don't try to skip data on elements with unknown sizes 2014-12-19 00:20:32 +01:00
Moritz Bunkus
ea8ea4ca99 EbmlMaster: don't try to get end position of an element with an unknown size
See https://trac.bunkus.org/ticket/1089
2014-12-19 00:20:32 +01:00
Moritz Bunkus
ef3f1430dd Merge pull request #3 from maksqwe/master
Some of the fixes and optimization
2014-05-12 20:02:47 +02:00
Moritz Bunkus
a366eaa89e Don't cause over-/underflow on certain platforms
On mingw 32bit this comparison gives a warning about always being
true, which can only be the case if one of the constant actually
over/underflows.
2013-12-07 13:32:22 +01:00
Moritz Bunkus
b0c4cb4701 Avoid compiler warning about possible use of uninitialized values 2013-10-19 12:25:30 +02:00
maksqwe
f0cf0dcbec fix indentation 2013-08-23 21:58:04 +03:00
maksqwe
af339a7a7a 1. "wcslen" function was called multiple times with "const wchar_t* Path"
2. fix mistake which led to undefined behavior "uint64(High<<32)" -> "uint64(High)<<32"
3. optimize std::vector<>::iterator's usage "iter++" -> "++iter". See preincrement and postincrement operator++()
2013-08-23 00:30:37 +03:00
Denis Charmet
0f99c2d712 Use (std::nothrow) with new when the code check for null pointer results. 2013-05-01 12:40:54 +02:00
Cristian Morales Vega
39ea616d5f Update licensing information
Substitute LICENSE.LGPL for the latest copy from http://www.gnu.org/. And update
the FSF address and links in all the file headers.
2013-04-14 12:07:13 +01:00
Cristian Morales Vega
71fbd5a521 Use Linux-style EOL for non Windows specific files 2013-04-06 08:53:50 +01:00
Moritz Bunkus
7dd909bef7 Add std::wstring constructor for UTFstring
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@844 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2012-09-05 20:21:59 +00:00
Moritz Bunkus
0312461091 Provide Get-/SetValue()/Get-/SetValueUTF8() for Ebml(Unicode)String; make Date values use 64bit ints
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@841 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2012-09-04 07:37:12 +00:00
Moritz Bunkus
b95a4104aa Provide GetValue() and SetValue() functions for EbmlFloat/SInteger/UInteger
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@840 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2012-09-04 07:36:48 +00:00
Moritz Bunkus
c2ab2859ac Make int conversion operators const
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@839 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2012-09-04 07:36:24 +00:00
Moritz Bunkus
d5f30db3c6 Bump version number to 1.3.0
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@838 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2012-09-04 07:36:04 +00:00
Moritz Bunkus
88cdc30938 Fix several gcc warnings occurring with -Wextra
Warnings fixed are:

- warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
- warning: unused parameter ... [-Wunused-parameter]
- warning: comparison is always true due to limited range of data type [-Wtype-limits]



git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@822 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2011-11-25 21:01:45 +00:00
Steve Lhomme
ffeea955a0 libebml: fix some compilation warnings in mingw
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@821 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2011-10-18 16:55:49 +00:00
Moritz Bunkus
9a31b3864c Move definition of EbmlCodeVersion into the library
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@803 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2011-09-11 09:03:43 +00:00
Steve Lhomme
2490c80ad1 libebml: fix the Debug class use
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@796 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2011-09-09 04:00:42 +00:00
Steve Lhomme
527f98c367 libebml: only use the test element to read once in the loop
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@788 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2011-07-15 13:31:03 +00:00
Steve Lhomme
7922aef03d libebml: code cleaning
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@757 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2011-06-12 09:51:25 +00:00
Steve Lhomme
f2545cc6d7 libebml: fix the size returned by MemIOCallback::read() when reaching the end of the buffer
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@747 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2011-04-26 17:14:24 +00:00
Steve Lhomme
81b5b9ff60 libebml: fix the constructor of CRTError (path from Graham 'gbooker' Booker)
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@746 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2011-04-14 07:40:25 +00:00
Steve Lhomme
676d1ba310 libebml: fix compilation of debug builds under win32
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@708 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2011-03-20 17:33:49 +00:00
Moritz Bunkus
9ff9decf8c Include <string> headers when std::string is used
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@672 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2011-02-05 21:26:49 +00:00
Moritz Bunkus
3a490a84ce Avoid compiler warnings due to differences in signs in comparisons
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@671 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2011-02-05 21:15:22 +00:00
Moritz Bunkus
d70416282f Use an explicit cast to std::string; fixes compilation with Sun Studio C compiler
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@670 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2011-02-05 21:11:28 +00:00
Moritz Bunkus
4ced4ea53e Fix handling of UTF-8 strings with characters encoded in more than three bytes.
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@647 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2011-01-29 11:42:15 +00:00
Steve Lhomme
14039ff241 fix compilation under gcc 4.5
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@520 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2010-08-19 12:01:28 +00:00
Steve Lhomme
27c3b32bed libebml: the makefiles use DEBUG and not NDEBUG
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@504 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2010-08-15 13:07:48 +00:00
Steve Lhomme
99fad2afdf fix CRC32 detection in master elements
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@493 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2010-08-12 18:27:18 +00:00
Steve Lhomme
42044e93f5 more safety on the Binary buffer handling in case we run out of memory
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@491 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2010-08-10 19:04:58 +00:00
Steve Lhomme
df5620c733 libebml: no need to put the internal code of EbmlCRC32 in the public header
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@486 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2010-08-08 11:16:14 +00:00
Steve Lhomme
866099132f libebml: EbmlElement::VoidMe() now returns a uint64
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@364 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2010-06-30 06:07:40 +00:00
Steve Lhomme
5607f4ebc8 libebml: move some operator code in the .cpp files (MSVC has issues in DLLs)
+ libmatroska ChangeLog

git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@347 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2010-06-26 09:07:13 +00:00
Steve Lhomme
33c808ec0e libebml: a plain integer doesn't need a const
git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml@280 a6f86f6d-0131-4f8e-9e7b-e335508773d5
2010-05-27 15:52:47 +00:00