Commit Graph

54 Commits

Author SHA1 Message Date
Rémi Denis-Courmont 6039248018 mem: fix pointer pointer aliasing violations
This uses explicit memory copying to read and write pointer to pointers
of arbitrary object types. This works provided that the architecture
uses the same representation for all pointer types (the previous code
made that assumption already anyway).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-02-01 02:28:40 +01:00
Anton Khirnov 8ddc32629a mem: add av_strndup() for duplicating substrings 2014-08-13 17:24:18 +00:00
Anton Khirnov cce3e0a49f Move av_fast_{m,re}alloc from lavc to lavu. 2013-11-14 09:42:22 +01:00
Martin Storsjö d433e1aefa mem: Make av_strdup allocate using av_realloc
This makes sure that pointers from av_strdup are reallocable,
which is used in av_dict_set if the AV_DICT_APPEND flag is set.

Nothing should rely on pointers from av_strdup being aligned.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-10-16 18:59:01 +03:00
Martin Storsjö 67e285ceca mem: Handle av_reallocp(..., 0) properly
Previously this did a double free (and returned an error).

Reported-by: Justin Ruggles
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-09-20 21:23:08 +03:00
Luca Barbato 3feb3d6ce4 mem: Introduce av_reallocp 2013-09-16 19:36:37 +02:00
Diego Biurrun c3e6e8f06c mem: Do not check unsigned values for negative size 2013-09-05 12:38:43 +02:00
Diego Biurrun b634b36fce mem: Improve documentation wording and spelling 2013-09-05 12:38:43 +02:00
Martin Storsjö fc962d4e7a mem: Add av_realloc_array and av_reallocp_array
These help avoiding overflows and simplify error handling.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-06-04 15:04:08 +03:00
Anton Khirnov f935aca44c av_memcpy_backptr: avoid an infinite loop for back = 0
CC:libav-stable@libav.org
2013-02-23 09:16:15 +01:00
Anton Khirnov cb45553f57 Remove pointless #undefs of previously forbidden functions. 2012-12-04 21:40:22 +01:00
Mans Rullgard 4a606c830a av_memcpy_backptr: optimise some special cases
- Add special cases for offsets of 2, 3, or 4 bytes.  This means the
  offset is always >4 in the generic case, allowing 32-bit copies to
  be used there.
- Don't use memcpy() for sizes less than 16 bytes.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-23 12:04:17 +00:00
Diego Biurrun 5bac2d0c30 avutil: Move memcpy_backptr() to mem.c
The function is used elsewhere and does not belong with the LZO code.
2012-10-25 11:36:57 +02:00
Diego Biurrun 5532cf3178 avutil/mem: K&R formatting cosmetics 2012-10-20 02:34:29 +02:00
Martin Storsjö 620b1e7e98 mem: Don't abort on av_malloc(0) in debug mode
This makes the behaviour consistent between debug and release mode.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 11:37:03 +03:00
Ronald S. Bultje be1a839ca6 mem: add support for _aligned_malloc() as found on Windows
The check uses check_func_header, since this function is
conditionally available depending on the targeted MSVCRT
version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-19 10:08:00 +03:00
Martin Storsjö 14f063d294 mem: Consistently return NULL for av_malloc(0)
Plain POSIX malloc(0) is allowed to return either NULL or a
non-NULL pointer. The calling code should be ready to handle
a NULL return as a correct return (instead of a failure) if the size
to allocate was 0 - this makes sure the condition is handled
in a consistent way across platforms.

This also avoids calling posix_memalign(&ptr, 32, 0) on OS X,
which returns an invalid pointer (a non-NULL pointer that causes
crashes when passed to av_free).

Abort in debug mode, to help track down issues related to
incorrect handling of this case.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-10 11:56:42 +03:00
Alex Converse 7181c4edee cosmetics: Remove extra newlines at EOF 2012-01-27 17:19:09 -08:00
Vitor Sessak 13dfce3d44 Increase alignment of av_malloc() as needed by AVX ASM.
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2011-04-26 18:18:22 +02:00
Anton Khirnov 490a022d86 lavu: remove misc disabled cruft 2011-04-19 19:04:28 +02:00
Mans Rullgard 2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Clément Bœsch dc75d6dbf2 Avoid pointless check before calling free
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-03 01:36:00 +00:00
Michael Niedermayer b47541c7a3 Change the argument of memory allocation functions from unsigned int to size_t
with the next major bump in libavutil.

Originally committed as revision 25871 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-04 04:00:12 +00:00
Diego Biurrun ba87f0801d Remove explicit filename from Doxygen @file commands.
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.

Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 14:45:34 +00:00
Måns Rullgård 4ae406856f Add --malloc-prefix to apply a prefix to malloc, free etc
This makes it easy to use a replacement allocator instead of the
system default one.

Originally committed as revision 21509 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-28 13:06:31 +00:00
Patrik Kullman a90de11dba Check return value of posix_memalign and explicitly set pointer to NULL if it
fails, patch by Patrik Kullman, patrik yes nu.

Originally committed as revision 17495 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 20:38:27 +00:00
Diego Biurrun bad5537e2c Use full internal pathname in doxygen @file directives.
Otherwise doxygen complains about ambiguous filenames when files exist
under the same name in different subdirectories.

Originally committed as revision 16912 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-01 02:00:19 +00:00
Diego Biurrun 89c9ff504b spelling/grammar/consistency review part I
Originally committed as revision 16840 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-28 00:16:05 +00:00
Diego Biurrun 1e60e93355 10l: Add #undefs for system free/malloc/realloc, which must be used here.
Originally committed as revision 16794 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-25 22:59:05 +00:00
Diego Biurrun 77652a6aaf C files should #include the header files of the same name.
Originally committed as revision 16792 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-25 22:40:43 +00:00
Diego Biurrun 692c315e3a Do not #include common.h without necessity.
This eliminates the need to work around common.h overriding certain system
functions which are required in this header.

Originally committed as revision 16776 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-25 17:36:48 +00:00
Diego Biurrun dfcb6b56f9 Directly #include a bunch of indirectly #included headers.
Originally committed as revision 16748 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-24 14:55:30 +00:00
Diego Biurrun 406792e7b0 cosmetics: Remove pointless period after copyright statement non-sentences.
Originally committed as revision 16684 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-19 15:46:40 +00:00
Aurelien Jacobs b250f9c66d Change semantic of CONFIG_*, HAVE_* and ARCH_*.
They are now always defined to either 0 or 1.

Originally committed as revision 16590 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-13 23:44:16 +00:00
Ramiro Polla 1f91cdce0b Use posix_memalign() if available.
Originally committed as revision 16488 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-07 23:36:34 +00:00
Michael Niedermayer 19757f6169 indent
Originally committed as revision 13251 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-23 12:37:52 +00:00
Michael Niedermayer fdf35f265a make av_strdup(NULL) return NULL
Originally committed as revision 13250 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-23 12:37:32 +00:00
Michael Niedermayer ed0d3048c0 Merge declaratio and initialization.
Originally committed as revision 12677 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-03 19:20:32 +00:00
Michael Niedermayer 11362767b8 Merge declaration and initialization.
Originally committed as revision 12676 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-03 19:18:14 +00:00
Diego Biurrun 2cab640129 typo fixes
Originally committed as revision 12428 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-12 23:58:46 +00:00
Diego Biurrun 7ce6892373 misc spelling fixes
Originally committed as revision 12410 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-10 18:42:09 +00:00
avcoder 90d30570d8 Avoid void*-arithmetic.
Patch by mvplayer: ffmpeg gmail com

Originally committed as revision 11932 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-14 08:16:07 +00:00
Panagiotis Issaris d7f654692a Move unaltered av_freep() comments to the header file.
Originally committed as revision 8253 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-05 13:51:03 +00:00
Panagiotis Issaris f690ee715d Move unaltered av_free() comments to the header file.
Originally committed as revision 8252 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-05 13:50:03 +00:00
Panagiotis Issaris d6def91a3b Move unaltered av_realloc() comments to the header file.
Originally committed as revision 8251 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-05 13:46:47 +00:00
Panagiotis Issaris 9a07029916 Move unaltered av_malloc() comments to the header file.
Originally committed as revision 8250 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-05 13:45:52 +00:00
Diego Biurrun eafcac6ac8 cosmetics: Fix another common typo, dependAnt --> dependEnt.
Originally committed as revision 8114 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-24 09:41:43 +00:00
Måns Rullgård 9ddbcae667 rename MEMALIGN_HACK to CONFIG_MEMALIGN_HACK, use common code in configure
Originally committed as revision 7025 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-11-14 00:35:21 +00:00
Diego Biurrun b78e7197a8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
and fix GPL/LGPL version mismatches.

Originally committed as revision 6577 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-10-07 15:30:46 +00:00
Luca Barbato 79e47000c8 move memory functions from avcodec to avutil
Originally committed as revision 6330 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-09-25 15:23:40 +00:00