version 1.142, 2008/04/24 19:16:49 |
version 1.143, 2008/04/26 19:58:03 |
|
|
int |
int |
rcs_init(char *envstr, char **argv, int argvlen) |
rcs_init(char *envstr, char **argv, int argvlen) |
{ |
{ |
u_int i; |
|
int argc, error; |
int argc, error; |
char linebuf[256], *lp, *cp; |
char *linebuf, *lp, *cp; |
|
|
if (strlcpy(linebuf, envstr, sizeof(linebuf)) >= sizeof(linebuf)) |
linebuf = xstrdup(envstr); |
errx(1, "rcs_init: string truncation"); |
|
(void)memset(argv, 0, argvlen * sizeof(char *)); |
(void)memset(argv, 0, argvlen * sizeof(char *)); |
|
|
error = argc = 0; |
error = argc = 0; |
|
|
break; |
break; |
} |
} |
|
|
argv[argc] = xstrdup(cp); |
argv[argc] = cp; |
argc++; |
argc++; |
} |
} |
|
|
if (error != 0) { |
if (error != 0) { |
for (i = 0; i < (u_int)argc; i++) |
xfree(linebuf); |
xfree(argv[i]); |
|
argc = -1; |
argc = -1; |
} |
} |
|
|