gnu: Ceph: Update to 14.2.5.
[jackhill/guix/guix.git] / gnu / packages / patches / giflib-make-reallocarray-private.patch
1 Move the declaration from gif_lib.h to gif_lib_private.h to solve
2 conflicts when some .c-file #includes both stdlib.h and gif_lib.h.
3 See also https://sourceforge.net/p/giflib/bugs/110/
4
5 diff -ur giflib-5.1.4.orig/lib/dgif_lib.c giflib-5.1.4/lib/dgif_lib.c
6 --- giflib-5.1.4.orig/lib/dgif_lib.c 2018-02-28 20:31:02.294682673 +0100
7 +++ giflib-5.1.4/lib/dgif_lib.c 2018-02-28 22:38:11.659126414 +0100
8 @@ -396,7 +396,7 @@
9
10 if (GifFile->SavedImages) {
11 SavedImage* new_saved_images =
12 - (SavedImage *)reallocarray(GifFile->SavedImages,
13 + (SavedImage *)giflib_private_reallocarray(GifFile->SavedImages,
14 (GifFile->ImageCount + 1), sizeof(SavedImage));
15 if (new_saved_images == NULL) {
16 GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM;
17 @@ -1108,7 +1108,7 @@
18 if (ImageSize > (SIZE_MAX / sizeof(GifPixelType))) {
19 return GIF_ERROR;
20 }
21 - sp->RasterBits = (unsigned char *)reallocarray(NULL, ImageSize,
22 + sp->RasterBits = (unsigned char *)giflib_private_reallocarray(NULL, ImageSize,
23 sizeof(GifPixelType));
24
25 if (sp->RasterBits == NULL) {
26 diff -ur giflib-5.1.4.orig/lib/gifalloc.c giflib-5.1.4/lib/gifalloc.c
27 --- giflib-5.1.4.orig/lib/gifalloc.c 2018-02-28 20:31:02.294682673 +0100
28 +++ giflib-5.1.4/lib/gifalloc.c 2018-02-28 22:38:11.657126423 +0100
29 @@ -8,7 +8,7 @@
30 #include <stdio.h>
31 #include <string.h>
32
33 -#include "gif_lib.h"
34 +#include "gif_lib_private.h"
35
36 #define MAX(x, y) (((x) > (y)) ? (x) : (y))
37
38 @@ -188,7 +188,7 @@
39
40 /* perhaps we can shrink the map? */
41 if (RoundUpTo < ColorUnion->ColorCount) {
42 - GifColorType *new_map = (GifColorType *)reallocarray(Map,
43 + GifColorType *new_map = (GifColorType *)giflib_private_reallocarray(Map,
44 RoundUpTo, sizeof(GifColorType));
45 if( new_map == NULL ) {
46 GifFreeMapObject(ColorUnion);
47 @@ -232,7 +232,7 @@
48 if (*ExtensionBlocks == NULL)
49 *ExtensionBlocks=(ExtensionBlock *)malloc(sizeof(ExtensionBlock));
50 else {
51 - ExtensionBlock* ep_new = (ExtensionBlock *)reallocarray
52 + ExtensionBlock* ep_new = (ExtensionBlock *)giflib_private_reallocarray
53 (*ExtensionBlocks, (*ExtensionBlockCount + 1),
54 sizeof(ExtensionBlock));
55 if( ep_new == NULL )
56 @@ -325,7 +325,7 @@
57 if (GifFile->SavedImages == NULL)
58 GifFile->SavedImages = (SavedImage *)malloc(sizeof(SavedImage));
59 else
60 - GifFile->SavedImages = (SavedImage *)reallocarray(GifFile->SavedImages,
61 + GifFile->SavedImages = (SavedImage *)giflib_private_reallocarray(GifFile->SavedImages,
62 (GifFile->ImageCount + 1), sizeof(SavedImage));
63
64 if (GifFile->SavedImages == NULL)
65 @@ -355,7 +355,7 @@
66 }
67
68 /* next, the raster */
69 - sp->RasterBits = (unsigned char *)reallocarray(NULL,
70 + sp->RasterBits = (unsigned char *)giflib_private_reallocarray(NULL,
71 (CopyFrom->ImageDesc.Height *
72 CopyFrom->ImageDesc.Width),
73 sizeof(GifPixelType));
74 @@ -369,7 +369,7 @@
75
76 /* finally, the extension blocks */
77 if (sp->ExtensionBlocks != NULL) {
78 - sp->ExtensionBlocks = (ExtensionBlock *)reallocarray(NULL,
79 + sp->ExtensionBlocks = (ExtensionBlock *)giflib_private_reallocarray(NULL,
80 CopyFrom->ExtensionBlockCount,
81 sizeof(ExtensionBlock));
82 if (sp->ExtensionBlocks == NULL) {
83 diff -ur giflib-5.1.4.orig/lib/gif_lib.h giflib-5.1.4/lib/gif_lib.h
84 --- giflib-5.1.4.orig/lib/gif_lib.h 2018-02-28 20:31:02.294682673 +0100
85 +++ giflib-5.1.4/lib/gif_lib.h 2018-02-28 20:31:43.135716712 +0100
86 @@ -244,9 +244,6 @@
87 GifPixelType ColorTransIn2[]);
88 extern int GifBitSize(int n);
89
90 -extern void *
91 -reallocarray(void *optr, size_t nmemb, size_t size);
92 -
93 /******************************************************************************
94 Support for the in-core structures allocation (slurp mode).
95 ******************************************************************************/
96 diff -ur giflib-5.1.4.orig/lib/gif_lib_private.h giflib-5.1.4/lib/gif_lib_private.h
97 --- giflib-5.1.4.orig/lib/gif_lib_private.h 2018-02-28 20:31:02.294682673 +0100
98 +++ giflib-5.1.4/lib/gif_lib_private.h 2018-02-28 22:38:11.657126423 +0100
99 @@ -54,6 +54,9 @@
100 bool gif89;
101 } GifFilePrivateType;
102
103 +extern void *
104 +giflib_private_reallocarray(void *optr, size_t nmemb, size_t size);
105 +
106 #endif /* _GIF_LIB_PRIVATE_H */
107
108 /* end */
109 diff -ur giflib-5.1.4.orig/lib/openbsd-reallocarray.c giflib-5.1.4/lib/openbsd-reallocarray.c
110 --- giflib-5.1.4.orig/lib/openbsd-reallocarray.c 2018-02-28 20:31:02.295682659 +0100
111 +++ giflib-5.1.4/lib/openbsd-reallocarray.c 2018-02-28 22:38:11.656126428 +0100
112 @@ -27,7 +27,7 @@
113 #define MUL_NO_OVERFLOW ((size_t)1 << (sizeof(size_t) * 4))
114
115 void *
116 -reallocarray(void *optr, size_t nmemb, size_t size)
117 +giflib_private_reallocarray(void *optr, size_t nmemb, size_t size)
118 {
119 if ((nmemb >= MUL_NO_OVERFLOW || size >= MUL_NO_OVERFLOW) &&
120 nmemb > 0 && SIZE_MAX / nmemb < size) {