Fix:Maptool:Fix coverity bug #45. Pointer "bg" dereferenced before NULL check.
authorhorwitz <horwitz@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Thu, 18 Mar 2010 08:45:55 +0000 (08:45 +0000)
committerhorwitz <horwitz@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Thu, 18 Mar 2010 08:45:55 +0000 (08:45 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@3043 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/graphics/gtk_drawing_area/graphics_gtk_drawing_area.c

index 08f9dd8..ddb5da8 100644 (file)
@@ -488,17 +488,18 @@ static void
 overlay_draw(struct graphics_priv *parent, struct graphics_priv *overlay, GdkRectangle *re, GdkPixmap *pixmap, GdkGC *gc)
 {
        GdkPixbuf *pixbuf,*pixbuf2;
-       guchar *pixels1, *pixels2, *p1, *p2, r, g, b, a;
+       guchar *pixels1, *pixels2, *p1, *p2, r=0, g=0, b=0, a=0;
        int x,y;
        int rowstride1,rowstride2;
        int n_channels1,n_channels2;
        GdkRectangle or,ir;
        struct graphics_gc_priv *bg=overlay->background_gc;
-       r=bg->c.r>>8;
-       g=bg->c.g>>8;
-       b=bg->c.b>>8;
-       a=bg->c.a>>8;
-       
+       if (bg) {
+               r=bg->c.r>>8;
+               g=bg->c.g>>8;
+               b=bg->c.b>>8;
+               a=bg->c.a>>8;
+       }
 
        if (parent->overlay_disabled || overlay->overlay_disabled || overlay->overlay_autodisabled)
                return;