Skip to content

Commit b087663

Browse files
author
Daniel Blanchard
committed
Merge branch 'mysql-5.5' into mysql-5.6
2 parents 4c7e662 + 8d2bc86 commit b087663

File tree

4 files changed

+49
-23
lines changed

4 files changed

+49
-23
lines changed

mysql-test/r/mysqld--help-win.result

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1187,7 +1187,7 @@ myisam-sort-buffer-size 8388608
11871187
myisam-stats-method nulls_unequal
11881188
myisam-use-mmap FALSE
11891189
named-pipe FALSE
1190-
named-pipe-full-access-group everyone
1190+
named-pipe-full-access-group *everyone*
11911191
net-buffer-length 16384
11921192
net-read-timeout 30
11931193
net-retry-count 10
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
select @@global.named_pipe_full_access_group;
22
@@global.named_pipe_full_access_group
3-
everyone
3+
*everyone*
44
select @@session.named_pipe_full_access_group;
55
ERROR HY000: Variable 'named_pipe_full_access_group' is a GLOBAL variable
66
show global variables like 'named_pipe_full_access_group';
77
Variable_name Value
8-
named_pipe_full_access_group everyone
8+
named_pipe_full_access_group *everyone*
99
show session variables like 'named_pipe_full_access_group';
1010
Variable_name Value
11-
named_pipe_full_access_group everyone
11+
named_pipe_full_access_group *everyone*
1212
select * from information_schema.global_variables where variable_name='named_pipe_full_access_group';
1313
VARIABLE_NAME VARIABLE_VALUE
14-
NAMED_PIPE_FULL_ACCESS_GROUP everyone
14+
NAMED_PIPE_FULL_ACCESS_GROUP *everyone*
1515
select * from information_schema.session_variables where variable_name='named_pipe_full_access_group';
1616
VARIABLE_NAME VARIABLE_VALUE
17-
NAMED_PIPE_FULL_ACCESS_GROUP everyone
17+
NAMED_PIPE_FULL_ACCESS_GROUP *everyone*

sql/named_pipe.cc

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,13 @@ bool is_existing_windows_group_name(const char *group_name)
5252

5353
bool is_valid_named_pipe_full_access_group(const char *group_name)
5454
{
55+
// Treat the DEFAULT_NAMED_PIPE_FULL_ACCESS_GROUP value
56+
// as a special case: we (later) convert it to the "world" SID
57+
if (strcmp(group_name, DEFAULT_NAMED_PIPE_FULL_ACCESS_GROUP) == 0)
58+
{
59+
return true;
60+
}
61+
5562
if (!group_name || group_name[0] == '\0' ||
5663
is_existing_windows_group_name(group_name))
5764
{
@@ -76,25 +83,44 @@ bool my_security_attr_add_rights_to_group(SECURITY_ATTRIBUTES *psa,
7683
DWORD size_referencedDomainName= MAX_PATH;
7784
SID_NAME_USE sid_name_use;
7885

79-
if (!LookupAccountName(NULL, group_name, soughtSID, &size_sid,
80-
referencedDomainName, &size_referencedDomainName,
81-
&sid_name_use))
86+
// Treat the DEFAULT_NAMED_PIPE_FULL_ACCESS_GROUP value
87+
// as a special case: we convert it to the "world" SID
88+
if (strcmp(group_name, DEFAULT_NAMED_PIPE_FULL_ACCESS_GROUP) == 0)
8289
{
83-
DWORD last_error_num= GetLastError();
84-
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
85-
NULL, last_error_num,
86-
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), last_error_msg,
87-
sizeof(last_error_msg) / sizeof(TCHAR), NULL);
88-
sql_print_error("my_security_attr_add_rights_to_group, LookupAccountName failed: %s",
89-
last_error_msg);
90-
return true;
90+
if (!CreateWellKnownSid(WinWorldSid, NULL, soughtSID, &size_sid))
91+
{
92+
DWORD last_error_num= GetLastError();
93+
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
94+
NULL, last_error_num,
95+
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), last_error_msg,
96+
sizeof(last_error_msg) / sizeof(TCHAR), NULL);
97+
sql_print_error("my_security_attr_add_rights_to_group, CreateWellKnownSid failed: %s",
98+
last_error_msg);
99+
return true;
100+
}
91101
}
92-
93-
// sid_name_use is SidTypeAlias when group_name is a local group
94-
if (sid_name_use != SidTypeAlias && sid_name_use != SidTypeWellKnownGroup)
102+
else
95103
{
96-
sql_print_error("LookupAccountName failed: unexpected sid_name_use");
97-
return true;
104+
if (!LookupAccountName(NULL, group_name, soughtSID, &size_sid,
105+
referencedDomainName, &size_referencedDomainName,
106+
&sid_name_use))
107+
{
108+
DWORD last_error_num= GetLastError();
109+
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
110+
NULL, last_error_num,
111+
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), last_error_msg,
112+
sizeof(last_error_msg) / sizeof(TCHAR), NULL);
113+
sql_print_error("my_security_attr_add_rights_to_group, LookupAccountName failed: %s",
114+
last_error_msg);
115+
return true;
116+
}
117+
118+
// sid_name_use is SidTypeAlias when group_name is a local group
119+
if (sid_name_use != SidTypeAlias && sid_name_use != SidTypeWellKnownGroup)
120+
{
121+
sql_print_error("LookupAccountName failed: unexpected sid_name_use");
122+
return true;
123+
}
98124
}
99125

100126
PACL pNewDACL= NULL;

sql/named_pipe.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,5 @@ bool is_valid_named_pipe_full_access_group(const char *group_name);
3535
bool my_security_attr_add_rights_to_group(SECURITY_ATTRIBUTES *psa,
3636
const char *group_name,
3737
DWORD group_rights);
38-
#define DEFAULT_NAMED_PIPE_FULL_ACCESS_GROUP "everyone"
38+
#define DEFAULT_NAMED_PIPE_FULL_ACCESS_GROUP "*everyone*"
3939
#endif /* NAMED_PIPE_INCLUDED */

0 commit comments

Comments
 (0)