[FFmpeg-devel] [PATCH] [RFC] libavutil/mem.c: Check return value of posix_memalign
Fri Feb 13 19:11:15 CET 2009
Patrik Kullman <patrik at yes.nu> writes:
> On Fri, 2009-02-13 at 16:26 +0000, M?ns Rullg?rd wrote:
>> Reimar D?ffinger <Reimar.Doeffinger at stud.uni-karlsruhe.de> writes:
>> > On Fri, Feb 13, 2009 at 03:47:23PM +0000, M?ns Rullg?rd wrote:
>> >> > libavutil/mem.c: In function ?av_malloc?:
>> >> > libavutil/mem.c:66: warning: ignoring return value of ?posix_memalign?,
>> >> > declared with attribute warn_unused_result
>> >> That warning is bogus. If posix_memalign() fails, memalign() will too
>> >> since they are likely to be the same function. We set the pointer to
>> >> NULL before the call, so if it fails, we return NULL as we're supposed
>> >> to.
>> > Well, if you are pedantic you here assume that posix_memalign will not
>> > modify ptr if it fails (or at least not set it != NULL), but that
>> > actually does not seem to be guaranteed by POSIX (it doesn't say
>> > anything about the value of ptr when an error is returned...).
>> That is indeed the case, and thus your suggestion of explicitly
>> setting it to NULL makes sense.
> So, this is OK?
> Index: libavutil/mem.c
> --- libavutil/mem.c (revision 17211)
> +++ libavutil/mem.c (working copy)
> @@ -63,7 +63,8 @@
> ptr = (char*)ptr + diff;
> ((char*)ptr)[-1]= diff;
> #elif HAVE_POSIX_MEMALIGN
> - posix_memalign(&ptr,16,size);
> + if (posix_memalign(&ptr,16,size) != 0)
Drop the != 0.
> + ptr = NULL;
> #elif HAVE_MEMALIGN
> ptr = memalign(16,size);
> /* Why 64?
Otherwise no objections from me. Maybe we should drop the initial
NULL assignment since with this change, it is not necessary.
mans at mansr.com
More information about the ffmpeg-devel