projects
/
silc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed silc_nickname_parse to return valid nickname when it returns
[silc.git]
/
lib
/
silcclient
/
command.c
diff --git
a/lib/silcclient/command.c
b/lib/silcclient/command.c
index abc94ef873da41bcb5bde3bc0fa31d48435c9ff8..a50ab52304b83e575d2dc274cea5d8e75e038170 100644
(file)
--- a/
lib/silcclient/command.c
+++ b/
lib/silcclient/command.c
@@
-731,9
+731,8
@@
SILC_FSM_STATE(silc_client_command_whois)
}
if (nick) {
}
if (nick) {
- silc_client_nickname_parse(client, conn, cmd->argv[1], &nickname);
- if (!nickname)
- nickname = strdup(cmd->argv[1]);
+ if (!silc_client_nickname_parse(client, conn, cmd->argv[1], &nickname))
+ goto out;
}
/* Send command */
}
/* Send command */
@@
-1051,7
+1050,10
@@
SILC_FSM_STATE(silc_client_command_invite)
/* Parse the typed nickname. */
if (cmd->argc == 3) {
if (cmd->argv[2][0] != '+' && cmd->argv[2][0] != '-') {
/* Parse the typed nickname. */
if (cmd->argc == 3) {
if (cmd->argv[2][0] != '+' && cmd->argv[2][0] != '-') {
- silc_client_nickname_parse(client, conn, cmd->argv[2], &nickname);
+ if (!silc_client_nickname_parse(client, conn, cmd->argv[2], &nickname)) {
+ silc_client_unref_channel(client, conn, channel);
+ goto out;
+ }
/* Find client entry */
clients = silc_client_get_clients_local(client, conn, cmd->argv[2],
/* Find client entry */
clients = silc_client_get_clients_local(client, conn, cmd->argv[2],
@@
-2120,7
+2122,8
@@
SILC_FSM_STATE(silc_client_command_cumode)
}
/* Parse the typed nickname. */
}
/* Parse the typed nickname. */
- silc_client_nickname_parse(client, conn, cmd->argv[3], &nickname);
+ if (!silc_client_nickname_parse(client, conn, cmd->argv[3], &nickname))
+ goto out;
/* Find client entry */
clients = silc_client_get_clients_local(client, conn, cmd->argv[3], FALSE);
/* Find client entry */
clients = silc_client_get_clients_local(client, conn, cmd->argv[3], FALSE);