=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/rcs/rcs.c,v retrieving revision 1.63 retrieving revision 1.64 diff -c -r1.63 -r1.64 *** src/usr.bin/rcs/rcs.c 2010/09/11 07:26:00 1.63 --- src/usr.bin/rcs/rcs.c 2010/09/23 17:59:03 1.64 *************** *** 1,4 **** ! /* $OpenBSD: rcs.c,v 1.63 2010/09/11 07:26:00 tobias Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: rcs.c,v 1.64 2010/09/23 17:59:03 nicm Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. *************** *** 1207,1214 **** if (RCSNUM_ISBRANCH(rev)) { brev = rev; rdp = rcs_findrev(rfp, rev); ! if (rdp == NULL) return (NULL); rev = rdp->rd_num; } else { --- 1207,1216 ---- if (RCSNUM_ISBRANCH(rev)) { brev = rev; rdp = rcs_findrev(rfp, rev); ! if (rdp == NULL) { ! buf_free(rbuf); return (NULL); + } rev = rdp->rd_num; } else { *************** *** 1274,1279 **** --- 1276,1282 ---- rcs_parse_deltatexts(rfp, rdp->rd_num); rbuf = rcs_patchfile(data, dlen, patch, plen, rcs_patch_lines); + xfree(data); if (rbuf == NULL) break;