summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortobias <tobias@openbsd.org>2013-04-01 16:08:00 +0000
committertobias <tobias@openbsd.org>2013-04-01 16:08:00 +0000
commit7f14818376eb42059c7e46ec336316919cc2d18f (patch)
tree275efb0b0ee1faa65d289e92e40227a8b832063b
parentspace cleanup; ok eric (diff)
downloadwireguard-openbsd-7f14818376eb42059c7e46ec336316919cc2d18f.tar.xz
wireguard-openbsd-7f14818376eb42059c7e46ec336316919cc2d18f.zip
Avoid memory leak while parsing diff's output.
ok lteo
-rw-r--r--usr.bin/sdiff/sdiff.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/usr.bin/sdiff/sdiff.c b/usr.bin/sdiff/sdiff.c
index 2aa684e0c2a..33bb6bf0eec 100644
--- a/usr.bin/sdiff/sdiff.c
+++ b/usr.bin/sdiff/sdiff.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sdiff.c,v 1.28 2009/06/07 13:29:50 ray Exp $ */
+/* $OpenBSD: sdiff.c,v 1.29 2013/04/01 16:08:00 tobias Exp $ */
/*
* Written by Raymond Lai <ray@cyth.net>.
@@ -740,11 +740,14 @@ parsecmd(FILE *diffpipe, FILE *file1, FILE *file2)
default:
errx(2, "invalid diff command: %c: %s", cmd, line);
}
+ free(line);
/* Skip to next ed line. */
- while (n--)
- if (!xfgets(diffpipe))
+ while (n--) {
+ if (!(line = xfgets(diffpipe)))
errx(2, "diff ended early");
+ free(line);
+ }
return (0);
}