=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/rcs.c,v retrieving revision 1.146 retrieving revision 1.147 diff -c -r1.146 -r1.147 *** src/usr.bin/cvs/rcs.c 2006/03/24 16:18:22 1.146 --- src/usr.bin/cvs/rcs.c 2006/03/25 21:29:59 1.147 *************** *** 1,4 **** ! /* $OpenBSD: rcs.c,v 1.146 2006/03/24 16:18:22 xsa Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: rcs.c,v 1.147 2006/03/25 21:29:59 ray Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. *************** *** 1429,1435 **** tmp = xstrdup(buf); if (file->rf_expand != NULL) ! free(file->rf_expand); file->rf_expand = tmp; /* not synced anymore */ file->rf_flags &= ~RCS_SYNCED; --- 1429,1435 ---- tmp = xstrdup(buf); if (file->rf_expand != NULL) ! xfree(file->rf_expand); file->rf_expand = tmp; /* not synced anymore */ file->rf_flags &= ~RCS_SYNCED; *************** *** 1688,1694 **** if (tok == RCS_TOK_ERR) { rcs_errno = RCS_ERR_PARSE; cvs_log(LP_ERR, "parse error in RCS admin section"); ! return (-1); } else if ((tok == RCS_TOK_NUM) || (tok == RCS_TOK_DESC)) { /* * Assume this is the start of the first delta or --- 1688,1694 ---- if (tok == RCS_TOK_ERR) { rcs_errno = RCS_ERR_PARSE; cvs_log(LP_ERR, "parse error in RCS admin section"); ! goto fail; } else if ((tok == RCS_TOK_NUM) || (tok == RCS_TOK_DESC)) { /* * Assume this is the start of the first delta or *************** *** 1707,1713 **** if (hmask & (1 << tok)) { rcs_errno = RCS_ERR_PARSE; cvs_log(LP_ERR, "duplicate RCS key"); ! return (-1); } hmask |= (1 << tok); --- 1707,1713 ---- if (hmask & (1 << tok)) { rcs_errno = RCS_ERR_PARSE; cvs_log(LP_ERR, "duplicate RCS key"); ! goto fail; } hmask |= (1 << tok); *************** *** 1736,1742 **** rfp->rf_branch = rcsnum_alloc(); if (rcsnum_aton(RCS_TOKSTR(rfp), NULL, rfp->rf_branch) < 0) ! return (-1); } else if (tok == RCS_TOK_COMMENT) { rfp->rf_comment = xstrdup(RCS_TOKSTR(rfp)); } else if (tok == RCS_TOK_EXPAND) { --- 1736,1742 ---- rfp->rf_branch = rcsnum_alloc(); if (rcsnum_aton(RCS_TOKSTR(rfp), NULL, rfp->rf_branch) < 0) ! goto fail; } else if (tok == RCS_TOK_COMMENT) { rfp->rf_comment = xstrdup(RCS_TOKSTR(rfp)); } else if (tok == RCS_TOK_EXPAND) { *************** *** 1750,1780 **** cvs_log(LP_ERR, "missing semi-colon after RCS `%s' key", rk->rk_str); ! return (-1); } break; case RCS_TOK_ACCESS: if (rcs_parse_access(rfp) < 0) ! return (-1); break; case RCS_TOK_SYMBOLS: if (rcs_parse_symbols(rfp) < 0) ! return (-1); break; case RCS_TOK_LOCKS: if (rcs_parse_locks(rfp) < 0) ! return (-1); break; default: rcs_errno = RCS_ERR_PARSE; cvs_log(LP_ERR, "unexpected token `%s' in RCS admin section", RCS_TOKSTR(rfp)); ! return (-1); } } ! return (0); } /* --- 1750,1781 ---- cvs_log(LP_ERR, "missing semi-colon after RCS `%s' key", rk->rk_str); ! goto fail; } break; case RCS_TOK_ACCESS: if (rcs_parse_access(rfp) < 0) ! goto fail; break; case RCS_TOK_SYMBOLS: if (rcs_parse_symbols(rfp) < 0) ! goto fail; break; case RCS_TOK_LOCKS: if (rcs_parse_locks(rfp) < 0) ! goto fail; break; default: rcs_errno = RCS_ERR_PARSE; cvs_log(LP_ERR, "unexpected token `%s' in RCS admin section", RCS_TOKSTR(rfp)); ! goto fail; } } ! fail: ! return (-1); } /* *************** *** 2512,2519 **** rcs_expand_keywords(char *rcsfile, struct rcs_delta *rdp, char *data, size_t len, int mode) { int kwtype, sizdiff; ! u_int i, j, found, start_offset, c_offset; char *c, *kwstr, *start, *end, *tbuf; char expbuf[256], buf[256]; struct tm *tb; --- 2513,2521 ---- rcs_expand_keywords(char *rcsfile, struct rcs_delta *rdp, char *data, size_t len, int mode) { + size_t i; int kwtype, sizdiff; ! u_int j, found, start_offset, c_offset; char *c, *kwstr, *start, *end, *tbuf; char expbuf[256], buf[256]; struct tm *tb;