summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2010-09-23 17:59:03 +0000
committernicm <nicm@openbsd.org>2010-09-23 17:59:03 +0000
commit20a75c5449465295bc6f365d024159624fb8bdf6 (patch)
tree924d5c4bd5f4a0d9854941f8bef835ef7752db24
parenttweak the disklabel uid stuff; ok jsing (diff)
downloadwireguard-openbsd-20a75c5449465295bc6f365d024159624fb8bdf6.tar.xz
wireguard-openbsd-20a75c5449465295bc6f365d024159624fb8bdf6.zip
Plug memory leak in rcs_getrev, from zinovik.
ok me stsp
-rw-r--r--usr.bin/rcs/rcs.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/usr.bin/rcs/rcs.c b/usr.bin/rcs/rcs.c
index 76a93310228..ab377659142 100644
--- a/usr.bin/rcs/rcs.c
+++ b/usr.bin/rcs/rcs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rcs.c,v 1.63 2010/09/11 07:26:00 tobias Exp $ */
+/* $OpenBSD: rcs.c,v 1.64 2010/09/23 17:59:03 nicm Exp $ */
/*
* Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
* All rights reserved.
@@ -1207,8 +1207,10 @@ rcs_getrev(RCSFILE *rfp, RCSNUM *frev)
if (RCSNUM_ISBRANCH(rev)) {
brev = rev;
rdp = rcs_findrev(rfp, rev);
- if (rdp == NULL)
+ if (rdp == NULL) {
+ buf_free(rbuf);
return (NULL);
+ }
rev = rdp->rd_num;
} else {
@@ -1274,6 +1276,7 @@ rcs_getrev(RCSFILE *rfp, RCSNUM *frev)
rcs_parse_deltatexts(rfp, rdp->rd_num);
rbuf = rcs_patchfile(data, dlen, patch, plen, rcs_patch_lines);
+ xfree(data);
if (rbuf == NULL)
break;