=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/rcs.c,v retrieving revision 1.16 retrieving revision 1.17 diff -c -r1.16 -r1.17 *** src/usr.bin/cvs/rcs.c 2004/12/16 17:16:18 1.16 --- src/usr.bin/cvs/rcs.c 2004/12/16 18:55:52 1.17 *************** *** 1,4 **** ! /* $OpenBSD: rcs.c,v 1.16 2004/12/16 17:16:18 jfb Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: rcs.c,v 1.17 2004/12/16 18:55:52 jfb Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. *************** *** 381,386 **** --- 381,388 ---- /* first look for duplication */ TAILQ_FOREACH(symp, &(rfp->rf_symbols), rs_list) { if (strcmp(symp->rs_name, sym) == 0) { + cvs_log(LP_ERR, "attempt to add duplicate symbol `%s'", + sym); return (-1); } } *************** *** 400,405 **** --- 402,408 ---- symp->rs_num = rcsnum_alloc(); if (symp->rs_num == NULL) { + free(symp->rs_name); free(symp); return (-1); } *************** *** 437,452 **** return (NULL); dlines = rcs_splitlines(data); ! if (dlines == NULL) return (NULL); plines = rcs_splitlines(patch); if (plines == NULL) { rcs_freefoo(dlines); return (NULL); } if (rcs_patch_lines(dlines, plines) < 0) { rcs_freefoo(plines); rcs_freefoo(dlines); return (NULL); --- 440,459 ---- return (NULL); dlines = rcs_splitlines(data); ! if (dlines == NULL) { ! cvs_buf_free(res); return (NULL); + } plines = rcs_splitlines(patch); if (plines == NULL) { + cvs_buf_free(res); rcs_freefoo(dlines); return (NULL); } if (rcs_patch_lines(dlines, plines) < 0) { + cvs_buf_free(res); rcs_freefoo(plines); rcs_freefoo(dlines); return (NULL); *************** *** 598,611 **** * This will need some rework to support sub branches. */ crev = rcsnum_alloc(); ! if (crev == NULL) return (NULL); rcsnum_cpy(rfp->rf_head, crev, 0); do { crev->rn_id[crev->rn_len - 1]--; rdp = rcs_findrev(rfp, crev); ! if (rdp == NULL) return (NULL); cvs_buf_putc(rbuf, '\0'); bp = cvs_buf_release(rbuf); --- 605,623 ---- * This will need some rework to support sub branches. */ crev = rcsnum_alloc(); ! if (crev == NULL) { ! cvs_buf_free(rbuf); return (NULL); + } rcsnum_cpy(rfp->rf_head, crev, 0); do { crev->rn_id[crev->rn_len - 1]--; rdp = rcs_findrev(rfp, crev); ! if (rdp == NULL) { ! rcsnum_free(crev); ! cvs_buf_free(rbuf); return (NULL); + } cvs_buf_putc(rbuf, '\0'); bp = cvs_buf_release(rbuf); *************** *** 617,623 **** rcsnum_free(crev); } } - return (rbuf); } --- 629,634 ----