[FFmpeg-devel] [PATCH] [RFC] libavutil/mem.c: Check return value of posix_memalign
Måns Rullgård
mans
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.
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list