diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c index 5c79d101c98eed3c9d36a6300306219820480b4e..ff84498a005e828ed51fc2c1d8fedf02cfc3026b 100644 --- a/src/bin/pg_ctl/pg_ctl.c +++ b/src/bin/pg_ctl/pg_ctl.c @@ -376,13 +376,14 @@ readfile(const char *path) void free_readfile(char **optlines) { - int i = 0; + char *curr_line = NULL; + int i = 0; if (!optlines) return; - while (optlines[i++]) - free(optlines[i]); + while ((curr_line = optlines[i++])) + free(curr_line); free(optlines); @@ -1224,6 +1225,7 @@ do_status(void) if (postmaster_is_alive((pid_t) pid)) { char **optlines; + char **curr_line; printf(_("%s: server is running (PID: %ld)\n"), progname, pid); @@ -1231,8 +1233,8 @@ do_status(void) optlines = readfile(postopts_file); if (optlines != NULL) { - for (; *optlines != NULL; optlines++) - fputs(*optlines, stdout); + for (curr_line = optlines; *curr_line != NULL; curr_line++) + fputs(*curr_line, stdout); /* Free the results of readfile */ free_readfile(optlines);