提交 d2286a98 编写于 作者: T Tom Lane

Allow embedded spaces without quoting in unix_socket_directories entries.

This fix removes an unnecessary incompatibility with the old behavior of
the unix_socket_directory parameter.  Since pathnames with embedded spaces
are fairly popular on some platforms, the incompatibility could be
significant in practice.  We'll still strip unquoted leading/trailing
spaces, however.

No docs update since the documentation already implied that it worked
like this.

Per bug #7514 from Murray Cumming.
上级 25f4fe4e
......@@ -2451,9 +2451,9 @@ SplitIdentifierString(char *rawstring, char separator,
*
* This is similar to SplitIdentifierString, except that the parsing
* rules are meant to handle pathnames instead of identifiers: there is
* no downcasing, the max length is MAXPGPATH-1, and we apply
* canonicalize_path() to each extracted string. Because of the last,
* the returned strings are separately palloc'd rather than being
* no downcasing, embedded spaces are allowed, the max length is MAXPGPATH-1,
* and we apply canonicalize_path() to each extracted string. Because of the
* last, the returned strings are separately palloc'd rather than being
* pointers into rawstring --- but we still scribble on rawstring.
*
* Inputs:
......@@ -2510,13 +2510,16 @@ SplitDirectoriesString(char *rawstring, char separator,
}
else
{
/* Unquoted name --- extends to separator or whitespace */
curname = nextp;
while (*nextp && *nextp != separator &&
!isspace((unsigned char) *nextp))
/* Unquoted name --- extends to separator or end of string */
curname = endp = nextp;
while (*nextp && *nextp != separator)
{
/* trailing whitespace should not be included in name */
if (!isspace((unsigned char) *nextp))
endp = nextp + 1;
nextp++;
endp = nextp;
if (curname == nextp)
}
if (curname == endp)
return false; /* empty unquoted name not allowed */
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册