aboutsummaryrefslogtreecommitdiffstats
path: root/extension/readfile.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2017-06-23 12:42:57 +0300
committerArnold D. Robbins <arnold@skeeve.com>2017-06-23 12:42:57 +0300
commitec2e54b2c075f30e9499adea22681499e3f6582d (patch)
treeeead84bdf1f41b78f90f00c13e02dd59eae92133 /extension/readfile.c
parent9ccddb999bb2d79c261702f789deb9371090a4ec (diff)
parent44e29458a6355ad64e8d89676a441b224ce76cbc (diff)
downloadegawk-ec2e54b2c075f30e9499adea22681499e3f6582d.tar.gz
egawk-ec2e54b2c075f30e9499adea22681499e3f6582d.tar.bz2
egawk-ec2e54b2c075f30e9499adea22681499e3f6582d.zip
Merge branch 'master' into feature/api-mpfr
Diffstat (limited to 'extension/readfile.c')
-rw-r--r--extension/readfile.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/extension/readfile.c b/extension/readfile.c
index fb1a376b..b600f27a 100644
--- a/extension/readfile.c
+++ b/extension/readfile.c
@@ -73,25 +73,22 @@ int plugin_is_GPL_compatible;
static char *
read_file_to_buffer(int fd, const struct stat *sbuf)
{
- char *text = NULL;
- int ret;
+ char *text;
if ((sbuf->st_mode & S_IFMT) != S_IFREG) {
errno = EINVAL;
update_ERRNO_int(errno);
- goto done;
+ return NULL;
}
emalloc(text, char *, sbuf->st_size + 1, "do_readfile");
- memset(text, '\0', sbuf->st_size + 1);
- if ((ret = read(fd, text, sbuf->st_size)) != sbuf->st_size) {
+ if (read(fd, text, sbuf->st_size) != sbuf->st_size) {
update_ERRNO_int(errno);
gawk_free(text);
- text = NULL;
- /* fall through to return */
+ return NULL;
}
-done:
+ text[sbuf->st_size] = '\0';
return text;
}