424 lines
14 KiB
Diff
424 lines
14 KiB
Diff
From 6b545bc7153ba5ed9810ac55b59b00af2b1dd8e9 Mon Sep 17 00:00:00 2001
|
|
From: Nils Philippsen <nils@redhat.com>
|
|
Date: Fri, 8 Nov 2013 14:14:19 +0100
|
|
Subject: [PATCH] patch: static-code-check
|
|
|
|
Fix problems found during static code check (Coverity).
|
|
|
|
Squashed commit of the following:
|
|
|
|
commit 2effab4087246e4eb45f8132e88b23b57b92bb19
|
|
Author: Nils Philippsen <nils@redhat.com>
|
|
Date: Fri Nov 8 14:02:03 2013 +0100
|
|
|
|
file-bmp: don't close foreign FD in ReadImage()
|
|
|
|
(cherry picked from commit 4664c1f479e7768d08ed5198bed2251e6aa0464c)
|
|
|
|
commit 8c8f939a7760e606191681003bc868f6aef721d3
|
|
Author: Nils Philippsen <nils@redhat.com>
|
|
Date: Thu Nov 7 12:28:28 2013 +0100
|
|
|
|
app: don't ignore return value
|
|
|
|
...of gtk_widget_translate_coordinates()
|
|
|
|
(cherry picked from commit 391de600f1bd76aa21a3ec1ea4d349ef04cc160b)
|
|
(cherry picked from commit dc8bb4eecf43eadae1bc562def7569e59d6515b7)
|
|
|
|
commit 867b74dda47c3662cc5cff42bc5d9e629b943a8b
|
|
Author: Nils Philippsen <nils@redhat.com>
|
|
Date: Thu Nov 7 12:18:25 2013 +0100
|
|
|
|
file-jpeg: fix operator precedence errors
|
|
|
|
(cf. commit a9376443d7a2530f4481be18ee96a0322dc01ae5)
|
|
|
|
(cherry picked from commit 6abd0f2438dd3b025b1224ab6a473615c17f3418)
|
|
|
|
commit 1abe50e70b091638efaf3216face760ba2a82b01
|
|
Author: Nils Philippsen <nils@redhat.com>
|
|
Date: Thu Nov 7 12:12:55 2013 +0100
|
|
|
|
gimpcolorwheel: comment out ineffectual code
|
|
|
|
(cherry picked from commit 1bb379c3f5ffbaada8942e71d1c333b9fcf5580a)
|
|
(cherry picked from commit 8082363e9c887b9f31e43b7fc947e1867f9c087b)
|
|
|
|
commit 8aaf557a4e72b2ec1b8ee8ea567faba378986659
|
|
Author: Nils Philippsen <nils@redhat.com>
|
|
Date: Thu Nov 7 11:58:24 2013 +0100
|
|
|
|
file-bmp: don't leak file pointer when erroring out
|
|
|
|
(cherry picked from commit 6467fbf65dd046ee71e210b664099234e03390b9)
|
|
(cherry picked from commit 5c2f97f9f274bc20eef4ffd55c28156c39254343)
|
|
|
|
commit 199c4ba002af2ef3af3449114bafcf7acf119755
|
|
Author: Nils Philippsen <nils@redhat.com>
|
|
Date: Thu Nov 7 11:43:38 2013 +0100
|
|
|
|
color-selector-cmyk-lcms: avoid freeing uninitialized pointer
|
|
|
|
(cherry picked from commit c028580ae08ccf6408910ee6cf83d54308367f36)
|
|
|
|
Conflicts:
|
|
modules/color-selector-cmyk.c
|
|
|
|
(cherry picked from commit d291de0949c13eb2195158f6fbf41da2afe46cb9)
|
|
|
|
commit 4082c3184e542dbd4eb78f153d93b3988d69ca3c
|
|
Author: Nils Philippsen <nils@redhat.com>
|
|
Date: Thu Nov 7 11:33:19 2013 +0100
|
|
|
|
lcms: avoid dereferencing null pointers
|
|
|
|
(cherry picked from commit d0f7e713bb4478f2da3a688abf89adfdc2a935ee)
|
|
(cherry picked from commit 92a0387adc5a0e78501f6151b1d52c4c96f684a8)
|
|
---
|
|
app/widgets/gimpdeviceinfo-coords.c | 12 ++++++----
|
|
modules/color-selector-cmyk-lcms.c | 2 +-
|
|
modules/gimpcolorwheel.c | 2 +-
|
|
plug-ins/common/lcms.c | 15 ++++++++----
|
|
plug-ins/file-bmp/bmp-read.c | 48 +++++++++++++++++++------------------
|
|
plug-ins/file-jpeg/jpeg-load.c | 12 +++++-----
|
|
6 files changed, 50 insertions(+), 41 deletions(-)
|
|
|
|
diff --git a/app/widgets/gimpdeviceinfo-coords.c b/app/widgets/gimpdeviceinfo-coords.c
|
|
index 0b72a2b..f6b74ca 100644
|
|
--- a/app/widgets/gimpdeviceinfo-coords.c
|
|
+++ b/app/widgets/gimpdeviceinfo-coords.c
|
|
@@ -62,11 +62,13 @@ gimp_device_info_get_event_coords (GimpDeviceInfo *info,
|
|
gint offset_x;
|
|
gint offset_y;
|
|
|
|
- gtk_widget_translate_coordinates (src_widget, dest_widget,
|
|
- 0, 0, &offset_x, &offset_y);
|
|
-
|
|
- coords->x += offset_x;
|
|
- coords->y += offset_y;
|
|
+ if (gtk_widget_translate_coordinates (src_widget, dest_widget,
|
|
+ 0, 0,
|
|
+ &offset_x, &offset_y))
|
|
+ {
|
|
+ coords->x += offset_x;
|
|
+ coords->y += offset_y;
|
|
+ }
|
|
}
|
|
}
|
|
|
|
diff --git a/modules/color-selector-cmyk-lcms.c b/modules/color-selector-cmyk-lcms.c
|
|
index c668c3e..89c7d30 100644
|
|
--- a/modules/color-selector-cmyk-lcms.c
|
|
+++ b/modules/color-selector-cmyk-lcms.c
|
|
@@ -405,7 +405,7 @@ colorsel_cmyk_config_changed (ColorselCmyk *module)
|
|
cmsHPROFILE rgb_profile;
|
|
cmsHPROFILE cmyk_profile;
|
|
#ifdef HAVE_LCMS2
|
|
- gchar *descData;
|
|
+ gchar *descData = NULL;
|
|
#endif
|
|
const gchar *name = NULL;
|
|
gchar *text;
|
|
diff --git a/modules/gimpcolorwheel.c b/modules/gimpcolorwheel.c
|
|
index 8de1085..56642fd 100644
|
|
--- a/modules/gimpcolorwheel.c
|
|
+++ b/modules/gimpcolorwheel.c
|
|
@@ -364,7 +364,7 @@ hsv_to_rgb (gdouble *h,
|
|
{
|
|
*h = *v;
|
|
*s = *v;
|
|
- *v = *v; /* heh */
|
|
+ /* *v = *v; -- heh */
|
|
}
|
|
else
|
|
{
|
|
diff --git a/plug-ins/common/lcms.c b/plug-ins/common/lcms.c
|
|
index 87373fc..5974aaa 100644
|
|
--- a/plug-ins/common/lcms.c
|
|
+++ b/plug-ins/common/lcms.c
|
|
@@ -363,10 +363,12 @@ run (const gchar *name,
|
|
goto done;
|
|
|
|
if (proc != PROC_FILE_INFO)
|
|
- config = gimp_get_color_configuration ();
|
|
-
|
|
- if (config)
|
|
- intent = config->display_intent;
|
|
+ {
|
|
+ config = gimp_get_color_configuration ();
|
|
+ /* Later code relies on config != NULL if proc != PROC_FILE_INFO */
|
|
+ g_return_if_fail (config != NULL);
|
|
+ intent = config->display_intent;
|
|
+ }
|
|
else
|
|
intent = GIMP_COLOR_RENDERING_INTENT_PERCEPTUAL;
|
|
|
|
@@ -1386,7 +1388,10 @@ lcms_icc_apply_dialog (gint32 image,
|
|
|
|
run = (gimp_dialog_run (GIMP_DIALOG (dialog)) == GTK_RESPONSE_OK);
|
|
|
|
- *dont_ask = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle));
|
|
+ if (dont_ask)
|
|
+ {
|
|
+ *dont_ask = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle));
|
|
+ }
|
|
|
|
gtk_widget_destroy (dialog);
|
|
|
|
diff --git a/plug-ins/file-bmp/bmp-read.c b/plug-ins/file-bmp/bmp-read.c
|
|
index 7e70fbd..e59dfb8 100644
|
|
--- a/plug-ins/file-bmp/bmp-read.c
|
|
+++ b/plug-ins/file-bmp/bmp-read.c
|
|
@@ -193,7 +193,7 @@ ReadBMP (const gchar *name,
|
|
gint ColormapSize, rowbytes, Maps;
|
|
gboolean Grey = FALSE;
|
|
guchar ColorMap[256][3];
|
|
- gint32 image_ID;
|
|
+ gint32 image_ID = -1;
|
|
gchar magick[2];
|
|
Bitmap_Channel masks[4];
|
|
|
|
@@ -205,7 +205,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno),
|
|
_("Could not open '%s' for reading: %s"),
|
|
gimp_filename_to_utf8 (filename), g_strerror (errno));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
gimp_progress_init_printf (_("Opening '%s'"),
|
|
@@ -221,8 +221,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("'%s' is not a valid BMP file"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- fclose (fd);
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
while (!strncmp (magick, "BA", 2))
|
|
@@ -232,14 +231,14 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("'%s' is not a valid BMP file"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
if (!ReadOK (fd, magick, 2))
|
|
{
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("'%s' is not a valid BMP file"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
}
|
|
|
|
@@ -248,7 +247,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("'%s' is not a valid BMP file"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
/* bring them to the right byteorder. Not too nice, but it should work */
|
|
@@ -263,7 +262,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("'%s' is not a valid BMP file"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
Bitmap_File_Head.biSize = ToL (&buffer[0x00]);
|
|
@@ -277,7 +276,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("Error reading BMP file header from '%s'"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
Bitmap_Head.biWidth = ToS (&buffer[0x00]); /* 12 */
|
|
@@ -304,7 +303,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("Error reading BMP file header from '%s'"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
Bitmap_Head.biWidth = ToL (&buffer[0x00]); /* 12 */
|
|
@@ -332,7 +331,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("Error reading BMP file header from '%s'"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
Bitmap_Head.masks[0] = ToL(&buffer[0x00]);
|
|
@@ -361,7 +360,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("Error reading BMP file header from '%s'"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
Bitmap_Head.biWidth =ToL (&buffer[0x00]); /* 12 */
|
|
@@ -391,7 +390,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("Error reading BMP file header from '%s'"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
Bitmap_Head.biWidth = ToL (&buffer[0x00]);
|
|
@@ -425,7 +424,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("Error reading BMP file header from '%s'"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
/* Valid bit depth is 1, 4, 8, 16, 24, 32 */
|
|
@@ -445,7 +444,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("'%s' is not a valid BMP file"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
/* There should be some colors used! */
|
|
@@ -466,7 +465,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("'%s' is not a valid BMP file"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
/* biHeight may be negative, but G_MININT32 is dangerous because:
|
|
@@ -477,7 +476,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("'%s' is not a valid BMP file"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
if (Bitmap_Head.biPlanes != 1)
|
|
@@ -485,7 +484,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("'%s' is not a valid BMP file"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
if (Bitmap_Head.biClrUsed > 256)
|
|
@@ -493,7 +492,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("'%s' is not a valid BMP file"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
/* protect against integer overflows caused by malicious BMPs */
|
|
@@ -505,7 +504,7 @@ ReadBMP (const gchar *name,
|
|
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
_("'%s' is not a valid BMP file"),
|
|
gimp_filename_to_utf8 (filename));
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
/* Windows and OS/2 declare filler so that rows are a multiple of
|
|
@@ -533,7 +532,7 @@ ReadBMP (const gchar *name,
|
|
#endif
|
|
/* Get the Colormap */
|
|
if (!ReadColorMap (fd, ColorMap, ColormapSize, Maps, &Grey))
|
|
- return -1;
|
|
+ goto out;
|
|
}
|
|
|
|
fseek (fd, Bitmap_File_Head.bfOffs, SEEK_SET);
|
|
@@ -552,7 +551,7 @@ ReadBMP (const gchar *name,
|
|
error);
|
|
|
|
if (image_ID < 0)
|
|
- return -1;
|
|
+ goto out;
|
|
|
|
if (Bitmap_Head.biXPels > 0 && Bitmap_Head.biYPels > 0)
|
|
{
|
|
@@ -574,6 +573,10 @@ ReadBMP (const gchar *name,
|
|
if (Bitmap_Head.biHeight < 0)
|
|
gimp_image_flip (image_ID, GIMP_ORIENTATION_VERTICAL);
|
|
|
|
+out:
|
|
+ if (fd)
|
|
+ fclose (fd);
|
|
+
|
|
return image_ID;
|
|
}
|
|
|
|
@@ -917,7 +920,6 @@ ReadImage (FILE *fd,
|
|
break;
|
|
}
|
|
|
|
- fclose (fd);
|
|
if (bpp <= 8)
|
|
for (i = 0, j = 0; i < ncols; i++)
|
|
{
|
|
diff --git a/plug-ins/file-jpeg/jpeg-load.c b/plug-ins/file-jpeg/jpeg-load.c
|
|
index 3609029..4ae7eb2 100644
|
|
--- a/plug-ins/file-jpeg/jpeg-load.c
|
|
+++ b/plug-ins/file-jpeg/jpeg-load.c
|
|
@@ -982,9 +982,9 @@ jpeg_load_cmyk_transform (guint8 *profile_data,
|
|
if (cmyk_profile)
|
|
{
|
|
#ifdef HAVE_LCMS1
|
|
- if (! cmsGetColorSpace (cmyk_profile) == icSigCmykData)
|
|
+ if (cmsGetColorSpace (cmyk_profile) != icSigCmykData)
|
|
#else
|
|
- if (! cmsGetColorSpace (cmyk_profile) == cmsSigCmykData)
|
|
+ if (cmsGetColorSpace (cmyk_profile) != cmsSigCmykData)
|
|
#endif
|
|
{
|
|
cmsCloseProfile (cmyk_profile);
|
|
@@ -999,9 +999,9 @@ jpeg_load_cmyk_transform (guint8 *profile_data,
|
|
cmyk_profile = cmsOpenProfileFromFile (config->cmyk_profile, "r");
|
|
|
|
#ifdef HAVE_LCMS1
|
|
- if (cmyk_profile && ! cmsGetColorSpace (cmyk_profile) == icSigCmykData)
|
|
+ if (cmyk_profile && cmsGetColorSpace (cmyk_profile) != icSigCmykData)
|
|
#else
|
|
- if (cmyk_profile && ! cmsGetColorSpace (cmyk_profile) == cmsSigCmykData)
|
|
+ if (cmyk_profile && cmsGetColorSpace (cmyk_profile) != cmsSigCmykData)
|
|
#endif
|
|
{
|
|
cmsCloseProfile (cmyk_profile);
|
|
@@ -1022,9 +1022,9 @@ jpeg_load_cmyk_transform (guint8 *profile_data,
|
|
rgb_profile = cmsOpenProfileFromFile (config->rgb_profile, "r");
|
|
|
|
#ifdef HAVE_LCMS1
|
|
- if (rgb_profile && ! cmsGetColorSpace (rgb_profile) == icSigRgbData)
|
|
+ if (rgb_profile && cmsGetColorSpace (rgb_profile) != icSigRgbData)
|
|
#else
|
|
- if (rgb_profile && ! cmsGetColorSpace (rgb_profile) == cmsSigRgbData)
|
|
+ if (rgb_profile && cmsGetColorSpace (rgb_profile) != cmsSigRgbData)
|
|
#endif
|
|
{
|
|
cmsCloseProfile (rgb_profile);
|
|
--
|
|
1.8.4.2
|
|
|