4e84d0
diff -rupN --no-dereference giflib-5.2.1/gif2rgb.c giflib-5.2.1-new/gif2rgb.c
4e84d0
--- giflib-5.2.1/gif2rgb.c	2019-06-24 09:24:27.000000000 +0200
4e84d0
+++ giflib-5.2.1-new/gif2rgb.c	2020-02-17 16:51:04.468397502 +0100
4e84d0
@@ -170,6 +170,8 @@ static void SaveGif(GifByteType *OutputB
4e84d0
     /* Open stdout for the output file: */
4e84d0
     if ((GifFile = EGifOpenFileHandle(1, &Error)) == NULL) {
4e84d0
 	PrintGifError(Error);
4e84d0
+	free(OutputBuffer);
4e84d0
+	GifFreeMapObject(OutputColorMap);
4e84d0
 	exit(EXIT_FAILURE);
4e84d0
     }
4e84d0
 
4e84d0
@@ -179,6 +181,8 @@ static void SaveGif(GifByteType *OutputB
4e84d0
 	EGifPutImageDesc(GifFile,
4e84d0
 			 0, 0, Width, Height, false, NULL) == GIF_ERROR) {
4e84d0
 	PrintGifError(Error);
4e84d0
+	free(OutputBuffer);
4e84d0
+	GifFreeMapObject(OutputColorMap);
4e84d0
 	exit(EXIT_FAILURE);
4e84d0
     }
4e84d0
 
4e84d0
@@ -187,8 +191,11 @@ static void SaveGif(GifByteType *OutputB
4e84d0
 	       GifFile->Image.Width, GifFile->Image.Height);
4e84d0
 
4e84d0
     for (i = 0; i < Height; i++) {
4e84d0
-	if (EGifPutLine(GifFile, Ptr, Width) == GIF_ERROR)
4e84d0
+	if (EGifPutLine(GifFile, Ptr, Width) == GIF_ERROR) {
4e84d0
+	    free(OutputBuffer);
4e84d0
+	    GifFreeMapObject(OutputColorMap);
4e84d0
 	    exit(EXIT_FAILURE);
4e84d0
+        }
4e84d0
 	GifQprintf("\b\b\b\b%-4d", Height - i - 1);
4e84d0
 
4e84d0
 	Ptr += Width;
4e84d0
@@ -196,6 +203,8 @@ static void SaveGif(GifByteType *OutputB
4e84d0
 
4e84d0
     if (EGifCloseFile(GifFile, &Error) == GIF_ERROR) {
4e84d0
 	PrintGifError(Error);
4e84d0
+	free(OutputBuffer);
4e84d0
+	GifFreeMapObject(OutputColorMap);
4e84d0
 	exit(EXIT_FAILURE);
4e84d0
     }
4e84d0
 }