printf(" MotdPhrase = %s\n", array_bytes(&Conf_Motd)
? (const char*) array_start(&Conf_Motd) : "");
}
+ printf(" Network = %s\n", Conf_Network);
#ifndef PAM
printf(" Password = %s\n", Conf_ServerPwd);
#endif
strcpy(Conf_ServerAdminMail, "");
snprintf(Conf_ServerInfo, sizeof Conf_ServerInfo, "%s %s",
PACKAGE_NAME, PACKAGE_VERSION);
+ strcpy(Conf_Network, "");
free(Conf_ListenAddress);
Conf_ListenAddress = NULL;
array_free(&Conf_ListenPorts);
/* Read configuration file */
section[0] = '\0';
while (true) {
- if (!fgets(str, LINE_LEN, fd))
+ if (!fgets(str, sizeof(str), fd))
break;
ngt_TrimStr(str);
line++;
if (str[0] == ';' || str[0] == '#' || str[0] == '\0')
continue;
+ if (strlen(str) >= sizeof(str) - 1) {
+ Config_Error(LOG_WARNING, "%s, line %d too long!",
+ File, line);
+ continue;
+ }
+
/* Is this the beginning of a new section? */
if ((str[0] == '[') && (str[strlen(str) - 1] == ']')) {
strlcpy(section, str, sizeof(section));
struct group *grp;
size_t len;
const char *section;
+ char *ptr;
assert(File != NULL);
assert(Line > 0);
len = strlen(Arg);
if (len == 0)
return;
- if (len >= LINE_LEN) {
+ if (len >= 127) {
Config_Error_TooLong(File, Line, Var);
return;
}
Using_MotdFile = false;
return;
}
+ if (strcasecmp(Var, "Network") == 0) {
+ len = strlcpy(Conf_Network, Arg, sizeof(Conf_Network));
+ if (len >= sizeof(Conf_Network))
+ Config_Error_TooLong(File, Line, Var);
+ ptr = strchr(Conf_Network, ' ');
+ if (ptr) {
+ Config_Error(LOG_WARNING,
+ "%s, line %d: \"Network\" can't contain spaces!",
+ File, Line);
+ *ptr = '\0';
+ }
+ return;
+ }
if(strcasecmp(Var, "Password") == 0) {
len = strlcpy(Conf_ServerPwd, Arg, sizeof(Conf_ServerPwd));
if (len >= sizeof(Conf_ServerPwd))