Fix secret channel information leak
/who on a secret channel that the user is not a member of now returns proper RPL_ENDOFWHO_MSG instead of nothing.
This commit is contained in:
parent
5cf5ba31eb
commit
12cd554af1
|
@ -12,6 +12,8 @@
|
|||
|
||||
ngIRCd-dev
|
||||
|
||||
- Fix Bug: 85: "WHO #SecretChannel" that user is not a member of now returns
|
||||
proper RPL_ENDOFWHO_MSG instead of nothing. (Ali Shemiran)
|
||||
- Implemented IRC commands SERVICE, SERVLIST, and SQUERY as dummy functions
|
||||
to be even more RFC-compliant. Closes bug 74.
|
||||
- Fixed Bug 75: KICK now handles comma-delimited lists.
|
||||
|
|
|
@ -738,7 +738,7 @@ IRC_Send_WHO(CLIENT *Client, CHANNEL *Chan, bool OnlyOps)
|
|||
|
||||
/* Secret channel? */
|
||||
if (!is_member && strchr(Channel_Modes(Chan), 's'))
|
||||
return CONNECTED;
|
||||
return IRC_WriteStrClient(Client, RPL_ENDOFWHO_MSG, Client_ID(Client), Channel_Name(Chan));
|
||||
|
||||
cl2chan = Channel_FirstMember(Chan);
|
||||
for (; cl2chan ; cl2chan = Channel_NextMember(Chan, cl2chan)) {
|
||||
|
|
|
@ -29,4 +29,9 @@
|
|||
Modes = t
|
||||
Topic = the topic
|
||||
|
||||
[CHANNEL]
|
||||
Name = #SecretChannel
|
||||
Modes = s
|
||||
Topic = A secret Channel
|
||||
|
||||
# -eof-
|
||||
|
|
|
@ -152,6 +152,16 @@ expect {
|
|||
timeout { exit 1 }
|
||||
":ngircd.test.server 352 nick \* * localhost ngircd.test.server nick H\* :0 Real Name"
|
||||
}
|
||||
expect {
|
||||
timeout { exit 1 }
|
||||
"315"
|
||||
}
|
||||
|
||||
send "who #SecretChannel\r"
|
||||
expect {
|
||||
timeout { exit 1 }
|
||||
"315"
|
||||
}
|
||||
|
||||
send "quit\r"
|
||||
expect {
|
||||
|
|
Loading…
Reference in New Issue