version 1.281, 2006/07/09 15:15:11 |
version 1.282, 2006/07/11 10:12:07 |
|
|
static int |
static int |
env_permitted(char *env) |
env_permitted(char *env) |
{ |
{ |
int i; |
int i, ret; |
char name[1024], *cp; |
char name[1024], *cp; |
|
|
if (strlcpy(name, env, sizeof(name)) >= sizeof(name)) |
if ((cp = strchr(env, '=')) == NULL || cp == env) |
fatal("env_permitted: name too long"); |
|
if ((cp = strchr(name, '=')) == NULL) |
|
return (0); |
return (0); |
|
ret = snprintf(name, sizeof(name), "%.*s", (cp - env), env); |
*cp = '\0'; |
if (ret <= 0 || (size_t)ret >= sizeof(name)) |
|
fatal("env_permitted: name '%.100s...' too long", env); |
|
|
for (i = 0; i < options.num_send_env; i++) |
for (i = 0; i < options.num_send_env; i++) |
if (match_pattern(name, options.send_env[i])) |
if (match_pattern(name, options.send_env[i])) |