--- radiusclient-0.3.2.orig/lib/config.c
+++ radiusclient-0.3.2/lib/config.c
@@ -95,11 +95,6 @@
 
 	serv = (SERVER *) option->val;
 
-	for (i = 0; i < serv->max; i++) {
-		free(serv->name[i]);
-	}
-	serv->max = 0;
-
 	while ((p = strtok(p, ", \t")) != NULL) {
 
 		if ((q = strchr(p,':')) != NULL) {
@@ -265,7 +260,7 @@
  * Returns: config option value
  */
 
-char *rc_conf_str(char *optname)
+char *rc_conf_str(const char *optname)
 {
 	OPTION *option;
 
@@ -274,7 +269,7 @@
 	if (option != NULL) {
 		return (char *)option->val;	
 	} else {
-		rc_log(LOG_CRIT, "rc_conf_str: unkown config option requested: %s", optname);
+		rc_log(LOG_CRIT, "rc_conf_str: unknown config option requested: %s", optname);
 		abort();
 	}
 }
@@ -285,10 +280,10 @@
 
 	option = find_option(optname, OT_INT|OT_AUO);
 	
-	if (option != NULL) {
+	if (option != NULL && option->val != NULL) {
 		return *((int *)option->val);	
 	} else {
-		rc_log(LOG_CRIT, "rc_conf_int: unkown config option requested: %s", optname);
+		rc_log(LOG_CRIT, "rc_conf_int: unknown config option requested: %s", optname);
 		abort();
 	}
 }
@@ -302,7 +297,7 @@
 	if (option != NULL) {
 		return (SERVER *)option->val;	
 	} else {
-		rc_log(LOG_CRIT, "rc_conf_srv: unkown config option requested: %s", optname);
+		rc_log(LOG_CRIT, "rc_conf_srv: unknown config option requested: %s", optname);
 		abort();
 	}
 }
