diff --git a/src/bin/pg_resetwal/pg_resetwal.c b/src/bin/pg_resetwal/pg_resetwal.c index 233441837f..673ab0204c 100644 --- a/src/bin/pg_resetwal/pg_resetwal.c +++ b/src/bin/pg_resetwal/pg_resetwal.c @@ -608,6 +608,7 @@ read_controlfile(void) len = read(fd, buffer, PG_CONTROL_FILE_SIZE); if (len < 0) { + pg_free(buffer); pg_log_error("could not read file \"%s\": %m", XLOG_CONTROL_FILE); exit(1); } @@ -631,6 +632,7 @@ read_controlfile(void) } memcpy(&ControlFile, buffer, sizeof(ControlFile)); + pg_free(buffer); /* return false if WAL segment size is not valid */ if (!IsValidWalSegSize(ControlFile.xlog_seg_size)) @@ -644,6 +646,7 @@ read_controlfile(void) return true; } + pg_free(buffer); /* Looks like it's a mess. */ pg_log_warning("pg_control exists but is broken or wrong version; ignoring it");