@@ -, +, @@ reallocarray(void *optr, size_t nmemb, size_t size); ^ extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) --- lib/dgif_lib.c | 4 ++-- lib/gif_lib.h | 3 --- lib/gifalloc.c | 10 +++++----- lib/openbsd-reallocarray.c | 2 +- 4 files changed, 8 insertions(+), 11 deletions(-) --- a/lib/dgif_lib.c +++ a/lib/dgif_lib.c @@ -396,7 +396,7 @@ DGifGetImageDesc(GifFileType *GifFile) if (GifFile->SavedImages) { SavedImage* new_saved_images = - (SavedImage *)reallocarray(GifFile->SavedImages, + (SavedImage *)openbsd_reallocarray(GifFile->SavedImages, (GifFile->ImageCount + 1), sizeof(SavedImage)); if (new_saved_images == NULL) { GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM; @@ -1108,7 +1108,7 @@ DGifSlurp(GifFileType *GifFile) if (ImageSize > (SIZE_MAX / sizeof(GifPixelType))) { return GIF_ERROR; } - sp->RasterBits = (unsigned char *)reallocarray(NULL, ImageSize, + sp->RasterBits = (unsigned char *)openbsd_reallocarray(NULL, ImageSize, sizeof(GifPixelType)); if (sp->RasterBits == NULL) { --- a/lib/gif_lib.h +++ a/lib/gif_lib.h @@ -244,9 +244,6 @@ extern ColorMapObject *GifUnionColorMap(const ColorMapObject *ColorIn1, GifPixelType ColorTransIn2[]); extern int GifBitSize(int n); -extern void * -reallocarray(void *optr, size_t nmemb, size_t size); - /****************************************************************************** Support for the in-core structures allocation (slurp mode). ******************************************************************************/ --- a/lib/gifalloc.c +++ a/lib/gifalloc.c @@ -188,7 +188,7 @@ GifUnionColorMap(const ColorMapObject *ColorIn1, /* perhaps we can shrink the map? */ if (RoundUpTo < ColorUnion->ColorCount) { - GifColorType *new_map = (GifColorType *)reallocarray(Map, + GifColorType *new_map = (GifColorType *)openbsd_reallocarray(Map, RoundUpTo, sizeof(GifColorType)); if( new_map == NULL ) { GifFreeMapObject(ColorUnion); @@ -232,7 +232,7 @@ GifAddExtensionBlock(int *ExtensionBlockCount, if (*ExtensionBlocks == NULL) *ExtensionBlocks=(ExtensionBlock *)malloc(sizeof(ExtensionBlock)); else { - ExtensionBlock* ep_new = (ExtensionBlock *)reallocarray + ExtensionBlock* ep_new = (ExtensionBlock *)openbsd_reallocarray (*ExtensionBlocks, (*ExtensionBlockCount + 1), sizeof(ExtensionBlock)); if( ep_new == NULL ) @@ -325,7 +325,7 @@ GifMakeSavedImage(GifFileType *GifFile, const SavedImage *CopyFrom) if (GifFile->SavedImages == NULL) GifFile->SavedImages = (SavedImage *)malloc(sizeof(SavedImage)); else - GifFile->SavedImages = (SavedImage *)reallocarray(GifFile->SavedImages, + GifFile->SavedImages = (SavedImage *)openbsd_reallocarray(GifFile->SavedImages, (GifFile->ImageCount + 1), sizeof(SavedImage)); if (GifFile->SavedImages == NULL) @@ -355,7 +355,7 @@ GifMakeSavedImage(GifFileType *GifFile, const SavedImage *CopyFrom) } /* next, the raster */ - sp->RasterBits = (unsigned char *)reallocarray(NULL, + sp->RasterBits = (unsigned char *)openbsd_reallocarray(NULL, (CopyFrom->ImageDesc.Height * CopyFrom->ImageDesc.Width), sizeof(GifPixelType)); @@ -369,7 +369,7 @@ GifMakeSavedImage(GifFileType *GifFile, const SavedImage *CopyFrom) /* finally, the extension blocks */ if (sp->ExtensionBlocks != NULL) { - sp->ExtensionBlocks = (ExtensionBlock *)reallocarray(NULL, + sp->ExtensionBlocks = (ExtensionBlock *)openbsd_reallocarray(NULL, CopyFrom->ExtensionBlockCount, sizeof(ExtensionBlock)); if (sp->ExtensionBlocks == NULL) { --- a/lib/openbsd-reallocarray.c +++ a/lib/openbsd-reallocarray.c @@ -27,7 +27,7 @@ #define MUL_NO_OVERFLOW ((size_t)1 << (sizeof(size_t) * 4)) void * -reallocarray(void *optr, size_t nmemb, size_t size) +openbsd_reallocarray(void *optr, size_t nmemb, size_t size) { if ((nmemb >= MUL_NO_OVERFLOW || size >= MUL_NO_OVERFLOW) && nmemb > 0 && SIZE_MAX / nmemb < size) { --