diff --git a/libavutil/mem.c b/libavutil/mem.c index a58f432a2c..a53676c553 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -137,7 +137,9 @@ void *av_realloc(void *ptr, size_t size) //FIXME this isn't aligned correctly, though it probably isn't needed if(!ptr) return av_malloc(size); diff= ((char*)ptr)[-1]; - return (char*)realloc((char*)ptr - diff, size + diff) + diff; + ptr= realloc((char*)ptr - diff, size + diff); + if(ptr) ptr = (char*)ptr + diff; + return ptr; #else return realloc(ptr, size + !size); #endif