Fix null pointer bug
authorP. F. Chimento <philip.chimento@gmail.com>
Sun, 13 Mar 2011 19:35:55 +0000 (20:35 +0100)
committerP. F. Chimento <philip.chimento@gmail.com>
Sun, 13 Mar 2011 19:35:55 +0000 (20:35 +0100)
Fixed a null pointer access in chimara_glk_set_css_from_file() when
passing NULL as the error parameter.

libchimara/chimara-glk.c

index ca01f44510d7c7dd86a0db2fa9698385cea1197b..4d8b55249fd6b3f2136e3daf9e34141481b10bee 100644 (file)
@@ -1063,8 +1063,9 @@ chimara_glk_set_css_from_file(ChimaraGlk *glk, const gchar *filename, GError **e
 
        int fd = open(filename, O_RDONLY);
        if(fd == -1) {
 
        int fd = open(filename, O_RDONLY);
        if(fd == -1) {
-               *error = g_error_new(G_IO_ERROR, g_io_error_from_errno(errno), 
-                   _("Error opening file \"%s\": %s"), filename, g_strerror(errno));
+               if(error)
+                       *error = g_error_new(G_IO_ERROR, g_io_error_from_errno(errno), 
+                               _("Error opening file \"%s\": %s"), filename, g_strerror(errno));
                return FALSE;
        }
 
                return FALSE;
        }
 
@@ -1074,8 +1075,9 @@ chimara_glk_set_css_from_file(ChimaraGlk *glk, const gchar *filename, GError **e
        scan_css_file(scanner, glk);
 
        if(close(fd) == -1) {
        scan_css_file(scanner, glk);
 
        if(close(fd) == -1) {
-               *error = g_error_new(G_IO_ERROR, g_io_error_from_errno(errno),
-                   _("Error closing file \"%s\": %s"), filename, g_strerror(errno));
+               if(error)
+                       *error = g_error_new(G_IO_ERROR, g_io_error_from_errno(errno),
+                               _("Error closing file \"%s\": %s"), filename, g_strerror(errno));
                return FALSE;
        }
        return TRUE;
                return FALSE;
        }
        return TRUE;