summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* framing: check for overflow on growing bufferClément Bœsch2020-08-101-1/+6
| | | | | | | newsize is a long, but storage is an int. This means the allocation could succeed but storage would overflow. Closes #2300
* src/framing.c: close compile warning under windows whith msbuildwillson-chen2020-04-251-1/+1
| | | | | | Close the C4244 warning while compiling under windows with cmake+msbuild. Signed-off-by: Tristan Matthews <tmatth@videolan.org>
* Fix memory leak in test_framingwillson-chen2019-08-121-0/+1
| | | | | | | | oy.data memory is alloc by ogg_sync_buffer(), but does not call free() before main() exit. After fixing it, I test test_framing by valgrind. And no more memory leak in test_framing and test_bitwise right now. Signed-off-by: Ralph Giles <giles@thaumas.net>
* Fix memory leak in test_framingwillson-chen2019-07-311-0/+2
| | | | | | | We call ogg_stream_init() in main() of framing.c, but no ogg_stream_clear() in corresponding. It will cause memory leak. Signed-off-by: Ralph Giles <giles@thaumas.net>
* Use %lu instead of %ld to fprintf unsigned longs.Quipyowert22019-03-181-2/+2
| | | | | | | | | | | | Fixes a cppcheck warning. Possibly we should just convert the array type to `long` since that's what oggpack_look() returns, using negative values to report error. However, none of the compared values are out of range for either type so it doesn't really matter. Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com> Signed-off-by: Ralph Giles <giles@thaumas.net>
* Get rid of annoying C4456 warningEugene Opalev2019-03-181-3/+0
| | | | | Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com> Signed-off-by: Ralph Giles <giles@thaumas.net>
* framing: cast to unsigned when shifting to fix ubsan errorsTristan Matthews2019-03-061-11/+11
| | | | | | Suggested-By Mark Harris Fixes #2297
* Misc. typosluz.paz2018-10-091-2/+2
| | | | | | Found via `codespell -q 3` Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
* Switch to slicing-by-8 CRC32 algorithm.Robert Kausch2018-04-303-89/+323
|
* Remove obsolete $Id$ svn substitution marks.Ralph Giles2017-11-082-2/+0
| | | | | | | | | | Subversion, like cvs, had a mechanism for replacing inline template text on checkout for representing things like 'last modified date'. Git does not support this, so remove the template strings from file header comments. Also less aggressive language is os_types.h.
* configure: add --disable-crc optionTristan Matthews2017-11-071-0/+14
| | | | Useful for fuzzing
* Fix struct comparison in tests for Win64James Ross-Gowan2017-11-011-1/+29
| | | | | | | | | | | On 64-bit Windows, sizeof(unsigned char *) is 8, sizeof(long) is 4 and alignof(ogg_int64_t) is 8. This results in a 4-byte hole in ogg_packet after "long e_o_s", which means ogg_packet structs cannot be reliably compared by memcmp. Compare ogg_packet structs member-by-member instead. This fixes `make check` for me on mingw-w64/GCC. Signed-off-by: Ralph Giles <giles@thaumas.net>
* Make false continued packet handling consistentTimothy B. Terriberry2017-06-161-0/+1
| | | | | | | | | | | | | | | | | A false continued packet occurs if the previous page ended at the end of a packet, with no sequence number gap and no continued data on that page, while the current page has the continued packet flag set. Previously, if you drained all of the buffered packet data by repeatedly calling ogg_stream_packetout() after submitting the previous page but before submitting the current page, libogg would discard the continued data at the beggining of the current page. However, if you left the previous page's data in the buffer, then libogg would happily return the continued data at the start of the current page as a separate packet when you eventually did call ogg_stream_packetout(). This patch makes libogg consistently discard this data.
* Fix automake warning.Ralph Giles2015-05-201-1/+1
| | | | Newer versions prefer AM_CPPFLAGS to INCLUDES.
* Update copyright year.Ralph Giles2014-05-271-1/+1
| | | | svn path=/trunk/ogg/; revision=19149
* Fix format specifier width warning.Ralph Giles2014-05-271-4/+4
| | | | | | dest_bytes is a long here, so we should use %ld instead of %d. svn path=/trunk/ogg/; revision=19147
* Correct oggpack_writecopy bug reported by Ian Nartowicz: IntegerMonty2014-04-241-15/+246
| | | | | | | | | | | | | | | overflow checking in oggpack_writecopy_helper got the reallocation size test condition backwards and so would error out when it needed to expand the destination's internal buffer. At the same time, do preexpansion of both aligned and unaligned copies to avoid possible heap thrashing in the unaligned case. Add black and glass box unit tests for oggpack_writecopy and oggpackB_writecopy. svn path=/trunk/ogg/; revision=19119
* Guard against very large packets.Tim Terriberry2013-01-081-13/+31
| | | | | | | Their size could overflow a long (especially on, e.g., Win64, where they could still fit in memory). svn path=/trunk/ogg/; revision=18758
* Fix a comment typo.Ralph Giles2011-08-041-1/+1
| | | | svn path=/trunk/ogg/; revision=18052
* Clean up whitespace.Ralph Giles2011-08-042-103/+99
| | | | | | Remove trailing whitespace and re-indent some comments. svn path=/trunk/ogg/; revision=18051
* Add ogg_stream_flush_fill to compliment ogg_stream_pageout_fill because ↵Gregory Maxwell2011-08-011-0/+8
| | | | | | ogg_stream_flush will produce multiple pages when >4096 bytes and >4 packets are available. svn path=/trunk/ogg/; revision=18044
* revert r17124 to match reversion of pagespill packet threshold from 8 to v1.2.1Monty2010-11-011-54/+21
| | | | | | | 4 svn path=/trunk/ogg/; revision=17592
* Revert default page spill from 8 to 4 packets.Monty2010-10-291-1/+1
| | | | svn path=/trunk/ogg/; revision=17579
* apply comment spell fix patch from Trac #1623Monty2010-10-271-2/+2
| | | | svn path=/trunk/ogg/; revision=17571
* The generic TYPE_MAX macros introduced in r17270 require the gcc typeofTim Terriberry2010-06-101-2/+3
| | | | | | | | extension, which is not supported by MSVC. We don't actually need that generality, though, so revert to simply using LONG_MAX instead. svn path=/trunk/ogg/; revision=17287
* Two cleanups of buffer LONG_MAX overflow hardening:Monty2010-06-041-3/+3
| | | | | | | | | | | GCC optimizes out the overflow check due to the overflow check reyling on overflow; reimplement using type-based TYPE_MAX macro Correct an accidental assignment-during-check that wasn't a bug, but was semantically incorrect and rightly triggered a compilation warning. svn path=/trunk/ogg/; revision=17270
* Correct packet accumulation in _packetout to accumulate a full long of bytes, Monty2010-06-041-1/+1
| | | | | | | mathing the ogg_packet declaration. svn path=/trunk/ogg/; revision=17269
* Complete code review on the pattern:Monty2010-06-041-56/+90
| | | | | | | | | | | | | if(b->endbyte*8+bits>b->storage*8)goto overflow; Eliminate the possibility of b->endbyte overflow on buffer storage near or exactly at long storage limit; corrections made to both read and write. Also, harden both read and write against requesting <0 or >32 read/write. In both case, the packer is put into 'error' state. svn path=/trunk/ogg/; revision=17268
* Update make check to work properly with the new page spill heuristic from r17098Gregory Maxwell2010-04-051-21/+54
| | | | svn path=/trunk/ogg/; revision=17124
* Add a 'ogg_stream_pageout_fill' function to allow smart applications with ↵Gregory Maxwell2010-03-291-4/+19
| | | | | | delay sensitive flushing to produce big pages. Increase the default minimum fill amount to 8 based on latency measurements with actual files. These changes may be controversial but since we've recently had a release I thought there would be no harm in getting them into the repository for discussion. svn path=/trunk/ogg/; revision=17098
* Cast away a char pointer signedness warning.Ralph Giles2010-03-261-4/+4
| | | | | | | | | | The oggpack_* calls expect an unsigned char *, but the self-test code for convenience uses string literals for some of the test vectors. This generates a warning on gcc and clang, at least. We silence the warning by casting the literals to (unsigned char *). svn path=/trunk/ogg/; revision=17063
* Fix int vs long issues with the framing self-test code.Ralph Giles2010-03-261-3/+3
| | | | | | Warnings reported by clang (the llvm C compiler). svn path=/trunk/ogg/; revision=17060
* Update make check to work properly with the new page spill heuristicv1.2.0Monty2010-03-261-54/+225
| | | | svn path=/trunk/ogg/; revision=17039
* Modify default page flushing behavior;Monty2010-03-212-37/+60
| | | | | | | | | | 1) Don't unneccessarily span pages. 2) Unless necessary, don't flush pages if there are less than four packets on them; this expands page size to reduce unneccessary overhead if incoming packets are large. svn path=/trunk/ogg/; revision=16993
* DESTROY ALL TABSMonty2009-05-272-412/+412
| | | | svn path=/trunk/ogg/; revision=16051
* Complete fleshing out async error reporting interface in the source;Monty2009-05-272-15/+61
| | | | | | | | | makes it safe to ignore most return codes in applications and simply check occasionally to see if something went wrong at some earlier point. svn path=/trunk/ogg/; revision=16047
* Correct a typo in the new oggpackB_writecheck that would have caused a Monty2009-05-211-1/+1
| | | | | | | stack overflow. svn path=/trunk/ogg/; revision=16022
* Update configure script to use new 'legal' names for cache vals (I hate you ↵Monty2009-05-192-27/+83
| | | | | | | | | | | | | | | | | | | so much, autofoo) Update ogg to check the return of all allocs for those on embedded platforms with guarantees non-ovecommit. Be aware that these checks are useless on any modern desktop OS, but that embedded folks with no MMU and a hard heap boundary will benefit. Add one new call to bitpacker that will query a write-mode oggpack_buffer to see if it ran out of memory at some point; there was no other way to add the error reporting in an ABI-compatible manner (and it also allows the writepacker to avoid extra checks; it will just keep going after running out of memory without faulting and state can be queried later). svn path=/trunk/ogg/; revision=16016
* Minor fixes to allow cross compiling from Linux to windows and running the ↵erikd2008-04-131-1/+3
| | | | | | tests under Wine. svn path=/trunk/ogg/; revision=14725
* Fix possible read past the end of the buffer when reading 0 bits.Tim Terriberry2008-02-291-0/+3
| | | | svn path=/trunk/ogg/; revision=14546
* six const correct-ness fixeserikd2008-02-091-8/+8
| | | | svn path=/trunk/ogg/; revision=14463
* Add Andrew Donkin's iovec patch to libogg 1. Applied as-is after Monty2007-02-081-11/+24
| | | | | | | review. svn path=/trunk/ogg/; revision=12446
* Use the automake test framework to run the self tests so we get a Ralph Giles2006-11-061-3/+1
| | | | | | completion summary. svn path=/trunk/ogg/; revision=12044
* remove obsolete .cvsignore filesRalph Giles2006-01-281-6/+0
| | | | svn path=/trunk/ogg/; revision=10757
* Correct the test case data to expect a granulepos of -1 on pages whereRalph Giles2005-07-231-4/+4
| | | | | | | | | | | | no packet ends. The spec is clear about this but the unit tests assumed the old behaviour (carry over the previous granulepos) was correct. I did not verify the new CRC values by hand however, they are just copied from the library output. Also update changelog for the bug fix. svn path=/trunk/ogg/; revision=9601
* According to the Ogg specification, an ogg page that doesn't have any Mike Smith2005-07-221-2/+3
| | | | | | | | | packets ending on it (which commonly happens with video keyframes, for instance) must have a granulepos of -1. libogg never implemented this correctly; this patch ensures it does. svn path=/trunk/ogg/; revision=9598
* Remove obsolete doc reference.Ralph Giles2005-06-061-13/+12
| | | | svn path=/trunk/ogg/; revision=9371
* Fix for Josh Coalson's long-packet sync continuation bug. Passes all unit ↵Monty2004-09-221-3/+7
| | | | | | tests. svn path=/trunk/ogg/; revision=7835
* Added appropriate unit test to test for Josh's bug.Monty2004-09-221-14/+52
| | | | svn path=/trunk/ogg/; revision=7824
* Fix for bugs 464/564Monty2004-09-011-1/+1
| | | | svn path=/trunk/ogg/; revision=7675