diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c index e633d0c18fee85aac2e639f4d40128b72f0de2ad..c9007eded92a6b9a99f003e018307dcda0e8e665 100644 --- a/src/bin/pg_ctl/pg_ctl.c +++ b/src/bin/pg_ctl/pg_ctl.c @@ -1934,8 +1934,10 @@ adjust_data_dir(void) pclose(fd); free(my_exec_path); - if (strlen(filename) > 0 && filename[strlen(filename) - 1] == '\n') - filename[strlen(filename) - 1] = '\0'; + /* Remove trailing newline */ + if (strchr(filename, '\n') != NULL) + *strchr(filename, '\n') = '\0'; + free(pg_data); pg_data = xstrdup(filename); canonicalize_path(pg_data);