version 1.28, 2003/06/02 09:17:34 |
version 1.28.6.2, 2005/06/05 02:22:39 |
|
|
} |
} |
cp = "permitopen=\""; |
cp = "permitopen=\""; |
if (strncasecmp(opts, cp, strlen(cp)) == 0) { |
if (strncasecmp(opts, cp, strlen(cp)) == 0) { |
char host[256], sport[6]; |
char *host, *p; |
u_short port; |
u_short port; |
char *patterns = xmalloc(strlen(opts) + 1); |
char *patterns = xmalloc(strlen(opts) + 1); |
|
|
|
|
if (!*opts) { |
if (!*opts) { |
debug("%.100s, line %lu: missing end quote", |
debug("%.100s, line %lu: missing end quote", |
file, linenum); |
file, linenum); |
auth_debug_add("%.100s, line %lu: missing end quote", |
auth_debug_add("%.100s, line %lu: missing " |
file, linenum); |
"end quote", file, linenum); |
xfree(patterns); |
xfree(patterns); |
goto bad_option; |
goto bad_option; |
} |
} |
patterns[i] = 0; |
patterns[i] = 0; |
opts++; |
opts++; |
if (sscanf(patterns, "%255[^:]:%5[0-9]", host, sport) != 2 && |
p = patterns; |
sscanf(patterns, "%255[^/]/%5[0-9]", host, sport) != 2) { |
host = hpdelim(&p); |
debug("%.100s, line %lu: Bad permitopen specification " |
if (host == NULL || strlen(host) >= NI_MAXHOST) { |
"<%.100s>", file, linenum, patterns); |
debug("%.100s, line %lu: Bad permitopen " |
|
"specification <%.100s>", file, linenum, |
|
patterns); |
auth_debug_add("%.100s, line %lu: " |
auth_debug_add("%.100s, line %lu: " |
"Bad permitopen specification", file, linenum); |
"Bad permitopen specification", file, |
|
linenum); |
xfree(patterns); |
xfree(patterns); |
goto bad_option; |
goto bad_option; |
} |
} |
if ((port = a2port(sport)) == 0) { |
host = cleanhostname(host); |
debug("%.100s, line %lu: Bad permitopen port <%.100s>", |
if (p == NULL || (port = a2port(p)) == 0) { |
file, linenum, sport); |
debug("%.100s, line %lu: Bad permitopen port " |
|
"<%.100s>", file, linenum, p ? p : ""); |
auth_debug_add("%.100s, line %lu: " |
auth_debug_add("%.100s, line %lu: " |
"Bad permitopen port", file, linenum); |
"Bad permitopen port", file, linenum); |
xfree(patterns); |
xfree(patterns); |