I was changing it one by one, but honestly it was just stupid. Let us change over to the sane checking once and for all. Signed-Off-By: Pete Zaitcev <zaitcev@xxxxxxxxxx> --- server/config.c | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) commit 1d6ca69e3f5f2cae0d5630e785f69549d93080e5 Author: Master <zaitcev@xxxxxxxxxxxxxxxxxx> Date: Thu Jan 14 20:04:27 2010 -0700 Switch cc->text checking completely to more precise variety. diff --git a/server/config.c b/server/config.c index 6fc7a88..301be66 100644 --- a/server/config.c +++ b/server/config.c @@ -158,7 +158,11 @@ static void cfg_elm_end (GMarkupParseContext *context, struct stat statb; long n; - if (!strcmp(element_name, "PID") && cc->text) { + if (!strcmp(element_name, "PID")) { + if (!cc->text) { + applog(LOG_WARNING, "PID element empty"); + return; + } if (tabled_srv.pid_file) { /* Silent about command line override. */ free(cc->text); @@ -168,13 +172,22 @@ static void cfg_elm_end (GMarkupParseContext *context, cc->text = NULL; } - else if (!strcmp(element_name, "ForceHost") && cc->text) { + else if (!strcmp(element_name, "ForceHost")) { + if (!cc->text) { + applog(LOG_WARNING, "ForceHost element empty"); + return; + } free(tabled_srv.ourhost); tabled_srv.ourhost = cc->text; cc->text = NULL; } - else if (!strcmp(element_name, "TDB") && cc->text) { + else if (!strcmp(element_name, "TDB")) { + if (!cc->text) { + applog(LOG_WARNING, "TDB element empty"); + return; + } + if (stat(cc->text, &statb) < 0) { applog(LOG_ERR, "stat(2) on TDB '%s' failed: %s", cc->text, strerror(errno)); @@ -192,7 +205,12 @@ static void cfg_elm_end (GMarkupParseContext *context, cc->text = NULL; } - else if (!strcmp(element_name, "TDBRepPort") && cc->text) { + else if (!strcmp(element_name, "TDBRepPort")) { + if (!cc->text) { + applog(LOG_WARNING, "TDBRepPort element empty"); + return; + } + n = strtol(cc->text, NULL, 10); if (n <= 0 || n >= 65536) { applog(LOG_WARNING, @@ -244,8 +262,7 @@ static void cfg_elm_end (GMarkupParseContext *context, if (cc->in_listen) { n = strtol(cc->text, NULL, 10); - if ((n > 0 && n < 65536) || - !strcmp(cc->text, "auto")) { + if ((n > 0 && n < 65536) || !strcmp(cc->text, "auto")) { free(cc->tmp_listen.port); cc->tmp_listen.port = cc->text; } else { @@ -306,13 +323,21 @@ static void cfg_elm_end (GMarkupParseContext *context, cc->text = NULL; } - else if (!strcmp(element_name, "ChunkUser") && cc->text) { + else if (!strcmp(element_name, "ChunkUser")) { + if (!cc->text) { + applog(LOG_WARNING, "ChunkUser element empty"); + return; + } free(tabled_srv.chunk_user); tabled_srv.chunk_user = cc->text; cc->text = NULL; } - else if (!strcmp(element_name, "ChunkKey") && cc->text) { + else if (!strcmp(element_name, "ChunkKey")) { + if (!cc->text) { + applog(LOG_WARNING, "ChunkKey element empty"); + return; + } free(tabled_srv.chunk_key); tabled_srv.chunk_key = cc->text; cc->text = NULL; -- To unsubscribe from this list: send the line "unsubscribe hail-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html