aboutsummaryrefslogtreecommitdiffstats
path: root/extension
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2013-01-18 12:34:29 +0200
committerArnold D. Robbins <arnold@skeeve.com>2013-01-18 12:34:29 +0200
commitee914dac4c736ae28bdacef7e5cc498c9cea38f2 (patch)
tree2e16ce90303b39bae7bba69c5af03e5b3dbaea48 /extension
parent3cdd8ae6ecd0fef578c1a4b7a8bbc706266a6677 (diff)
downloadegawk-ee914dac4c736ae28bdacef7e5cc498c9cea38f2.tar.gz
egawk-ee914dac4c736ae28bdacef7e5cc498c9cea38f2.tar.bz2
egawk-ee914dac4c736ae28bdacef7e5cc498c9cea38f2.zip
Fix some problems from warning tools, etc.
Diffstat (limited to 'extension')
-rw-r--r--extension/ChangeLog7
-rw-r--r--extension/inplace.c4
-rw-r--r--extension/readfile.c1
3 files changed, 11 insertions, 1 deletions
diff --git a/extension/ChangeLog b/extension/ChangeLog
index e31c6909..2c736992 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,3 +1,10 @@
+2013-01-18 Arnold D. Robbins <arnold@skeeve.com>
+
+ * readfile.c (do_readfile): Free `text' if read fails. Thanks to
+ cppcheck.
+ * inplace.c (do_inplace_begin): Check chown return value in an if
+ to shut up compiler warning.
+
2013-01-15 Arnold D. Robbins <arnold@skeeve.com>
* inplace.3am: New file.
diff --git a/extension/inplace.c b/extension/inplace.c
index e2183c1f..20682ea5 100644
--- a/extension/inplace.c
+++ b/extension/inplace.c
@@ -144,7 +144,9 @@ do_inplace_begin(int nargs, awk_value_t *result)
/* N.B. chown/chmod should be more portable than fchown/fchmod */
if (chown(state.tname, sbuf.st_uid, sbuf.st_gid) < 0)
- chown(state.tname, -1, sbuf.st_gid);
+ /* checking chown here shuts up the compiler. bleah */
+ if (chown(state.tname, -1, sbuf.st_gid) < 0)
+ ;
if (chmod(state.tname, sbuf.st_mode) < 0)
fatal(ext_id, _("inplace_begin: chmod failed (%s)"),
strerror(errno));
diff --git a/extension/readfile.c b/extension/readfile.c
index 7d5f78af..6c24d868 100644
--- a/extension/readfile.c
+++ b/extension/readfile.c
@@ -104,6 +104,7 @@ do_readfile(int nargs, awk_value_t *result)
if ((ret = read(fd, text, sbuf.st_size)) != sbuf.st_size) {
(void) close(fd);
update_ERRNO_int(errno);
+ free(text);
goto done;
}