version 1.92, 2006/04/01 01:20:21 |
version 1.93, 2006/04/02 02:01:40 |
|
|
if ((s = strchr(envdup, '%')) != NULL) |
if ((s = strchr(envdup, '%')) != NULL) |
*s = '\0'; |
*s = '\0'; |
|
|
strlcpy(buf, env, sizeof(buf)); |
if (strlcpy(buf, env, sizeof(buf)) >= sizeof(buf)) |
strlcpy(rpath, envdup, sizeof(rpath)); |
fatal("string truncation in cvs_initlog"); |
|
|
|
if (strlcpy(rpath, envdup, sizeof(rpath)) >= sizeof(rpath)) |
|
fatal("string truncation in cvs_initlog"); |
|
|
xfree(envdup); |
xfree(envdup); |
|
|
s = buf; |
s = buf; |
|
|
s++; |
s++; |
switch (*s) { |
switch (*s) { |
case 'c': |
case 'c': |
strlcpy(fpath, cvs_command, sizeof(fpath)); |
if (strlcpy(fpath, cvs_command, sizeof(fpath)) >= |
|
sizeof(fpath)) |
|
fatal("string truncation in cvs_initlog"); |
break; |
break; |
case 'd': |
case 'd': |
time(&now); |
time(&now); |
strlcpy(fpath, ctime(&now), sizeof(fpath)); |
if (strlcpy(fpath, ctime(&now), sizeof(fpath)) >= |
|
sizeof(fpath)) |
|
fatal("string truncation in cvs_initlog"); |
break; |
break; |
case 'p': |
case 'p': |
snprintf(fpath, sizeof(fpath), "%d", getpid()); |
snprintf(fpath, sizeof(fpath), "%d", getpid()); |
break; |
break; |
case 'u': |
case 'u': |
if ((pwd = getpwuid(getuid())) != NULL) |
if ((pwd = getpwuid(getuid())) != NULL) { |
strlcpy(fpath, pwd->pw_name, sizeof(fpath)); |
if (strlcpy(fpath, pwd->pw_name, |
else |
sizeof(fpath)) >= sizeof(fpath)) |
|
fatal("truncation in cvs_initlog"); |
|
} else { |
fpath[0] = '\0'; |
fpath[0] = '\0'; |
|
} |
endpwent(); |
endpwent(); |
break; |
break; |
default: |
default: |
|
|
} |
} |
|
|
if (fpath[0] != '\0') { |
if (fpath[0] != '\0') { |
strlcat(rpath, "-", sizeof(rpath)); |
if (strlcat(rpath, "-", sizeof(rpath)) >= sizeof(rpath)) |
strlcat(rpath, fpath, sizeof(rpath)); |
fatal("string truncation cvs_initlog"); |
|
|
|
if (strlcat(rpath, fpath, sizeof(rpath)) |
|
>= sizeof(rpath)) |
|
fatal("string truncation in cvs_initlog"); |
} |
} |
} |
} |
|
|
|
|
continue; |
continue; |
|
|
if (errno != ENOENT) |
if (errno != ENOENT) |
fatal("cvs_initlog() stat failed '%s'", strerror(errno)); |
fatal("cvs_initlog() stat failed '%s'", |
|
strerror(errno)); |
|
|
break; |
break; |
} |
} |
|
|
continue; |
continue; |
|
|
if (errno != ENOENT) |
if (errno != ENOENT) |
fatal("cvs_initlog() stat failed '%s'", strerror(errno)); |
fatal("cvs_initlog() stat failed '%s'", |
|
strerror(errno)); |
|
|
break; |
break; |
} |
} |