better fix for debian bug #983778
authorpaul <paul@claws-mail.org>
Fri, 5 Mar 2021 06:50:32 +0000 (06:50 +0000)
committerPaul <paul@claws-mail.org>
Fri, 5 Mar 2021 06:51:21 +0000 (06:51 +0000)
src/gtk/gtkutils.c
src/prefs_customheader.c

index 7ffcbb371b3f7165d94338f8c3f13407e4fd7636..272a5c3c4917489c245f857ef183d01fa2b38fae 100644 (file)
@@ -1090,7 +1090,8 @@ GtkWidget *xface_get_from_header(const gchar *o_xface)
        static gboolean xpm_xface_init = TRUE;
        gchar xface[2048];
        
-       cm_return_if_fail(sizeof(xface) < 0);
+       if (o_xface == NULL)
+               return NULL;
        
        strncpy(xface, o_xface, sizeof(xface) - 1);
        xface[sizeof(xface) - 1] = '\0';
index c60328bfba4f11f1c63efebce36445757316e228..93fcd8d75a8be16bfcff645d3d0a0f4ce05c1815 100644 (file)
@@ -908,7 +908,7 @@ static gboolean prefs_custom_header_selected(GtkTreeSelection *selector,
 
        ENTRY_SET_TEXT(customhdr.hdr_entry, ch->name);
        ENTRY_SET_TEXT(customhdr.val_entry, ch->value);
-       if (!g_strcmp0("Face",ch->name)) {
+       if (!g_strcmp0("Face",ch->name) && ch->value != NULL) {
                preview = GTK_IMAGE(face_get_from_header (ch->value));
                pixbuf = gtk_image_get_pixbuf(preview);
                gtk_image_set_from_pixbuf (GTK_IMAGE(customhdr.preview), pixbuf);
@@ -916,7 +916,7 @@ static gboolean prefs_custom_header_selected(GtkTreeSelection *selector,
                g_object_ref_sink (G_OBJECT(preview));
        } 
 #if HAVE_LIBCOMPFACE
-else if (!g_strcmp0("X-Face", ch->name)) {
+       else if (!g_strcmp0("X-Face", ch->name) && ch->value != NULL) {
                preview = GTK_IMAGE(xface_get_from_header(ch->value));  
                pixbuf = gtk_image_get_pixbuf(preview);
                gtk_image_set_from_pixbuf (GTK_IMAGE(customhdr.preview), pixbuf);
@@ -924,7 +924,7 @@ else if (!g_strcmp0("X-Face", ch->name)) {
                g_object_ref_sink (G_OBJECT(preview));
        } 
 #endif
-else {
+       else {
                gtk_widget_hide(customhdr.preview);
        }
        return TRUE;