version 1.165, 2006/04/29 05:10:16 |
version 1.166, 2006/04/29 05:31:28 |
|
|
goto out; |
goto out; |
} |
} |
|
|
strlcpy(path1, rcs_tmpdir, sizeof(path1)); |
if (strlcpy(path1, rcs_tmpdir, sizeof(path1)) >= sizeof(path1) || |
strlcat(path1, "/diff1.XXXXXXXXXX", sizeof(path1)); |
strlcat(path1, "/diff1.XXXXXXXXXX", sizeof(path1)) >= sizeof(path1)) |
|
errx(1, "path truncated"); |
rcs_buf_write_stmp(b1, path1, 0600); |
rcs_buf_write_stmp(b1, path1, 0600); |
|
|
rcs_buf_free(b1); |
rcs_buf_free(b1); |
b1 = NULL; |
b1 = NULL; |
|
|
strlcpy(path2, rcs_tmpdir, sizeof(path2)); |
if (strlcpy(path2, rcs_tmpdir, sizeof(path2)) >= sizeof(path2) || |
strlcat(path2, "/diff2.XXXXXXXXXX", sizeof(path2)); |
strlcat(path2, "/diff2.XXXXXXXXXX", sizeof(path2)) >= sizeof(path2)) |
|
errx(1, "path truncated"); |
rcs_buf_write_stmp(b2, path2, 0600); |
rcs_buf_write_stmp(b2, path2, 0600); |
|
|
rcs_buf_free(b2); |
rcs_buf_free(b2); |
|
|
while (*c++) { |
while (*c++) { |
if (*c == '$') { |
if (*c == '$') { |
end = c - start + 2; |
end = c - start + 2; |
if (end >= sizeof(buf)) |
if (strlcpy(buf, start, end) >= end) |
errx(1, "keyword buffer" |
errx(1, "keyword buffer" |
" too small!"); |
" too small!"); |
strlcpy(buf, start, end); |
|
checkin_parsekeyword(buf, rev, |
checkin_parsekeyword(buf, rev, |
date, author, state); |
date, author, state); |
break; |
break; |
|
|
*state = xstrdup(tokens[6]); |
*state = xstrdup(tokens[6]); |
len = strlen(tokens[3]) + strlen(tokens[4]) + 2; |
len = strlen(tokens[3]) + strlen(tokens[4]) + 2; |
datestring = xmalloc(len); |
datestring = xmalloc(len); |
strlcpy(datestring, tokens[3], len); |
if (strlcpy(datestring, tokens[3], len) >= len || |
strlcat(datestring, " ", len); |
strlcat(datestring, " ", len) >= len || |
strlcat(datestring, tokens[4], len); |
strlcat(datestring, tokens[4], len) >= len) |
|
errx(1, "date too long"); |
if ((*date = rcs_date_parse(datestring)) <= 0) |
if ((*date = rcs_date_parse(datestring)) <= 0) |
errx(1, "could not parse date"); |
errx(1, "could not parse date"); |
xfree(datestring); |
xfree(datestring); |
break; |
break; |
case KW_TYPE_AUTHOR: |
case KW_TYPE_AUTHOR: |
|
|
} |
} |
len = strlen(tokens[1]) + strlen(tokens[2]) + 2; |
len = strlen(tokens[1]) + strlen(tokens[2]) + 2; |
datestring = xmalloc(len); |
datestring = xmalloc(len); |
strlcpy(datestring, tokens[1], len); |
if (strlcpy(datestring, tokens[1], len) >= len || |
strlcat(datestring, " ", len); |
strlcat(datestring, " ", len) >= len || |
strlcat(datestring, tokens[2], len); |
strlcat(datestring, tokens[2], len) >= len) |
|
errx(1, "date too long"); |
if ((*date = rcs_date_parse(datestring)) <= 0) |
if ((*date = rcs_date_parse(datestring)) <= 0) |
errx(1, "could not parse date"); |
errx(1, "could not parse date"); |
xfree(datestring); |
xfree(datestring); |
break; |
break; |
case KW_TYPE_STATE: |
case KW_TYPE_STATE: |