From 9075f83ce93ebb68897dcce92878963adafefbb5 Mon Sep 17 00:00:00 2001 From: Wouter Verhelst Date: Wed, 24 Dec 2008 16:04:59 +0100 Subject: [PATCH] Improve error handling If a config file does not even contain a single session, g_key_file_get_start_group() will return NULL, resulting in a segfault if we feed that to strcmp. Check for that possibility. This closes Fedora bug #454099, BTW. Merry christmas ;-) --- nbd-server.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nbd-server.c b/nbd-server.c index c930ff4..bc390ab 100644 --- a/nbd-server.c +++ b/nbd-server.c @@ -573,6 +573,7 @@ GArray* parse_cfile(gchar* f, GError** e) { GArray *retval=NULL; gchar **groups; gboolean value; + gchar* startgroup; gint i; gint j; @@ -585,7 +586,8 @@ GArray* parse_cfile(gchar* f, GError** e) { g_key_file_free(cfile); return retval; } - if(strcmp(g_key_file_get_start_group(cfile), "generic")) { + startgroup = g_key_file_get_start_group(cfile); + if(!startgroup || strcmp(startgroup, "generic")) { g_set_error(e, errdomain, CFILE_MISSING_GENERIC, "Config file does not contain the [generic] group!"); g_key_file_free(cfile); return NULL; -- 1.7.10.4