--- dcbd-0.9.15/config.c.old 2009-10-02 15:38:53.213693022 -0700 +++ dcbd-0.9.15/config.c 2009-10-02 15:39:30.135703553 -0700 @@ -70,6 +70,8 @@ int init_cfg(void) if (cfg_loaded == TRUE) return CONFIG_OK; + config_init(&dcb_cfg); + if (!config_read_file(&dcb_cfg, cfg_file_name)) { TRACE("config file failed to load\n") TRACE2("error: ", config_error_text(&dcb_cfg)) @@ -358,16 +360,15 @@ static dcb_result _set_persistent(char * config_setting_t *setting_traffic = NULL; config_setting_t *setting_value = NULL; char abuf[2*DCB_MAX_TLV_LENGTH + 1]; - char version[MAX_NAME_LEN]; + char *p; int result, i; if (!init_cfg()) goto set_error; /* Read config file version */ - strcpy(version, config_lookup_string(&dcb_cfg, "version")); - if(NULL != version) { - result = strcmp(version, VERSION); + if (config_lookup_string(&dcb_cfg, "version", (const char **)&p)) { + result = strcmp(p, VERSION); if (result) { if (result < 0) { /* need to create a new upgraded cfg file */ @@ -942,17 +943,15 @@ dcb_result get_persistent(char *device_n config_setting_t *setting_value = NULL; int result = dcb_failed, i; int results[MAX_USER_PRIORITIES]; - char version[MAX_NAME_LEN]; + char *p; int len; char abuf[32]; memset(attribs, 0, sizeof(*attribs)); /* Read config file version */ - strcpy(version, config_lookup_string(&dcb_cfg, "version")); - - if(NULL != version) { - result = strcmp(version, VERSION); + if (config_lookup_string(&dcb_cfg, "version", (const char **)&p)) { + result = strcmp(p, VERSION); if (result) { if (result < 0) { /* need to create a new upgraded cfg file */