diff options
-rw-r--r-- | extension/ChangeLog | 6 | ||||
-rw-r--r-- | extension/rwarray.c | 3 | ||||
-rw-r--r-- | extension/rwarray0.c | 3 |
3 files changed, 10 insertions, 2 deletions
diff --git a/extension/ChangeLog b/extension/ChangeLog index 9574865c..8bb97590 100644 --- a/extension/ChangeLog +++ b/extension/ChangeLog @@ -1,5 +1,11 @@ 2017-06-22 Andrew J. Schorr <aschorr@telemetry-investments.com> + * rwarray.c (read_value): Use malloc instead of calloc, since + we immediately overwrite the buffer with data from the file. + * rwarray0.c (read_value): Ditto. + +2017-06-22 Andrew J. Schorr <aschorr@telemetry-investments.com> + * readfile.c (read_file_to_buffer): Use emalloc instead of ezalloc, since there's no need to initialize the memory to zero before overwriting it with the file's contents. diff --git a/extension/rwarray.c b/extension/rwarray.c index 370e38ac..53c908df 100644 --- a/extension/rwarray.c +++ b/extension/rwarray.c @@ -482,12 +482,13 @@ read_value(FILE *fp, awk_value_t *value) break; } value->str_value.len = len; - value->str_value.str = gawk_calloc(1, len + 1); + value->str_value.str = gawk_malloc(len + 1); if (fread(value->str_value.str, 1, len, fp) != (ssize_t) len) { gawk_free(value->str_value.str); return awk_false; } + value->str_value.str[len] = '\0'; } return awk_true; diff --git a/extension/rwarray0.c b/extension/rwarray0.c index abeb5326..79dee79e 100644 --- a/extension/rwarray0.c +++ b/extension/rwarray0.c @@ -446,12 +446,13 @@ read_value(int fd, awk_value_t *value) len = ntohl(len); value->val_type = AWK_STRING; value->str_value.len = len; - value->str_value.str = calloc(1, len + 1); + value->str_value.str = malloc(len + 1); if (read(fd, value->str_value.str, len) != (ssize_t) len) { free(value->str_value.str); return awk_false; } + value->str_value.str[len] = '\0'; } return awk_true; |