diff --git a/doc/src/sgml/ref/pg_basebackup.sgml b/doc/src/sgml/ref/pg_basebackup.sgml
index f3d3badaaae..051ba241a9c 100644
--- a/doc/src/sgml/ref/pg_basebackup.sgml
+++ b/doc/src/sgml/ref/pg_basebackup.sgml
@@ -157,7 +157,8 @@ PostgreSQL documentation
the target directory. If the cluster contains additional
tablespaces, the main data directory will be placed in the
target directory, but all other tablespaces will be placed
- in the same absolute path as they have on the server.
+ in the same absolute path as they have on the source server.
+ (See to change that.)
This is the default format.
@@ -267,7 +268,12 @@ PostgreSQL documentation
the main data directory are updated to point to the new location. So
the new data directory is ready to be used for a new server instance
with all tablespaces in the updated locations.
-
+
+
+
+ Currently, this option only works with plain output format; it is
+ ignored if tar format is selected.
+
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index fe0baf70da7..9ad6da922c9 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -11179,7 +11179,7 @@ read_tablespace_map(List **tablespaces)
}
else if ((ch == '\n' || ch == '\r') && prev_ch == '\\')
str[i - 1] = ch;
- else
+ else if (i < sizeof(str) - 1)
str[i++] = ch;
prev_ch = ch;
}