From 9e49df6b2042178be3df85a9e0a02c9599dbba68 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Thu, 12 Mar 2009 15:38:51 -0700 Subject: [PATCH] Add gcc-fortify-source branch --- .topdeps | 1 + .topmsg | 14 ++++++++++++++ cmd/zdb/zdb.c | 2 +- cmd/ztest/ztest.c | 2 +- lib/libzpool/kernel.c | 2 +- 5 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 .topdeps create mode 100644 .topmsg diff --git a/.topdeps b/.topdeps new file mode 100644 index 0000000000..1f7391f92b --- /dev/null +++ b/.topdeps @@ -0,0 +1 @@ +master diff --git a/.topmsg b/.topmsg new file mode 100644 index 0000000000..fc8e21aea0 --- /dev/null +++ b/.topmsg @@ -0,0 +1,14 @@ +From: Brian Behlendorf +Subject: [PATCH] gcc fortify source + +Resolve issues uncovered by -D_FORTIFY_SOURCE=2, the default redhat +macro's file adds this option to the cflags. This causes warnings +of the following type designed to keep the developer honest: + + warning: ignoring return value of 'foo', declared + with attribute warn_unused_result + +The short term fix is to wrap these calls in VERIFY() to check the +return code. The code was already assusing these would never fail. + +Signed-off-by: Brian Behlendorf diff --git a/cmd/zdb/zdb.c b/cmd/zdb/zdb.c index 0ced258656..1f1d6edca2 100644 --- a/cmd/zdb/zdb.c +++ b/cmd/zdb/zdb.c @@ -1875,7 +1875,7 @@ zdb_dump_block_raw(void *buf, uint64_t size, int flags) { if (flags & ZDB_FLAG_BSWAP) byteswap_uint64_array(buf, size); - (void) write(2, buf, size); + VERIFY(write(fileno(stderr), buf, size) == size); } static void diff --git a/cmd/ztest/ztest.c b/cmd/ztest/ztest.c index 4503a3d028..e758b23afe 100644 --- a/cmd/ztest/ztest.c +++ b/cmd/ztest/ztest.c @@ -1170,7 +1170,7 @@ ztest_vdev_LUN_growth(ztest_args_t *za) */ if (fsize < 2 * zopt_vdev_size) { size_t newsize = fsize + ztest_random(fsize / 32); - (void) ftruncate(fd, newsize); + VERIFY(ftruncate(fd, newsize) == 0); if (zopt_verbose >= 6) { (void) printf("%s grew from %lu to %lu bytes\n", dev_name, (ulong_t)fsize, (ulong_t)newsize); diff --git a/lib/libzpool/kernel.c b/lib/libzpool/kernel.c index 89108fe5b2..fc2a87fdbf 100644 --- a/lib/libzpool/kernel.c +++ b/lib/libzpool/kernel.c @@ -764,7 +764,7 @@ umem_out_of_memory(void) { char errmsg[] = "out of memory -- generating core dump\n"; - write(fileno(stderr), errmsg, sizeof (errmsg)); + (void) fprintf(stderr, "%s", errmsg); abort(); return (0); }