diff options
author | 2010-09-23 17:59:03 +0000 | |
---|---|---|
committer | 2010-09-23 17:59:03 +0000 | |
commit | 20a75c5449465295bc6f365d024159624fb8bdf6 (patch) | |
tree | 924d5c4bd5f4a0d9854941f8bef835ef7752db24 | |
parent | tweak the disklabel uid stuff; ok jsing (diff) | |
download | wireguard-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.c | 7 |
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; |