From 0e1b26643b634347ab532b6d717aad9316edd081 Mon Sep 17 00:00:00 2001 From: Rob Norris Date: Fri, 13 Nov 2015 22:00:52 +0000 Subject: [PATCH] Coverity: Prevent deference after null checks CID#34580 CID#34582 CID#34588 CID#34589 --- src/settings.c | 6 +++--- src/vikmapslayer.c | 8 ++++---- src/vikutils.c | 3 ++- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/settings.c b/src/settings.c index 09d99f9b..e3b1c1d5 100644 --- a/src/settings.c +++ b/src/settings.c @@ -255,13 +255,13 @@ gboolean a_settings_get_integer_list_contains ( const gchar *name, gint val ) void a_settings_set_integer_list_containing ( const gchar *name, gint val ) { gint* vals = NULL; - gsize length; + gsize length = 0; gboolean need_to_add = TRUE; gint ii = 0; // Get current list if ( a_settings_get_integer_list ( name, &vals, &length ) ) { // See if it's not already there - if ( vals && length ) { + if ( vals ) { while ( ii < length ) { if ( vals[ii] == val ) { need_to_add = FALSE; @@ -272,7 +272,7 @@ void a_settings_set_integer_list_containing ( const gchar *name, gint val ) } } // Add value into array if necessary - if ( need_to_add ) { + if ( vals && need_to_add ) { // NB not bothering to sort this 'list' ATM as there is not much to be gained guint new_length = length + 1; gint new_vals[new_length]; diff --git a/src/vikmapslayer.c b/src/vikmapslayer.c index d52b2c01..624e8a34 100644 --- a/src/vikmapslayer.c +++ b/src/vikmapslayer.c @@ -679,15 +679,15 @@ static VikLayerParamData maps_layer_get_param ( VikMapsLayer *vml, guint16 id, g rv.s = ""; set = TRUE; } - else if ( is_file_operation ) { + else if ( is_file_operation && vml->cache_dir ) { if ( a_vik_get_file_ref_format() == VIK_FILE_REF_FORMAT_RELATIVE ) { gchar *cwd = g_get_current_dir(); if ( cwd ) { rv.s = file_GetRelativeFilename ( cwd, vml->cache_dir ); if ( !rv.s ) rv.s = ""; set = TRUE; - } - } + } + } } if ( !set ) rv.s = vml->cache_dir ? vml->cache_dir : ""; @@ -946,7 +946,7 @@ static GdkPixbuf *get_pixbuf_sql_exec ( sqlite3 *sql, gint xx, gint yy, gint zoo GInputStream *stream = g_memory_input_stream_new_from_data ( data, bytes, NULL ); GError *error = NULL; pixbuf = gdk_pixbuf_new_from_stream ( stream, NULL, &error ); - if (error || (!pixbuf)) { + if ( error ) { g_warning ( "%s: %s", __FUNCTION__, error->message ); g_error_free ( error ); } diff --git a/src/vikutils.c b/src/vikutils.c index e90efb4a..db75aa9a 100644 --- a/src/vikutils.c +++ b/src/vikutils.c @@ -318,7 +318,8 @@ gchar* vu_trackpoint_formatted_message ( gchar *format_code, VikTrackpoint *trkp } case 'N': // Name of track - values[i] = g_strdup_printf ( _("%sTrack: %s"), separator, trk->name ); + if ( trk ) + values[i] = g_strdup_printf ( _("%sTrack: %s"), separator, trk->name ); break; case 'E': // Name of trackpoint if available -- 2.39.5