diff --git a/doc/src/sgml/ref/pg_basebackup.sgml b/doc/src/sgml/ref/pg_basebackup.sgml
index 2b7443b93fd..40d92960edb 100644
--- a/doc/src/sgml/ref/pg_basebackup.sgml
+++ b/doc/src/sgml/ref/pg_basebackup.sgml
@@ -155,7 +155,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.
@@ -291,7 +292,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 ba2fbdcf02a..126ea6521ee 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -11517,7 +11517,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;
}