From: fredrik Date: Tue, 21 Nov 2006 19:53:52 +0000 (+0000) Subject: Disallow cross-user messages. X-Git-Tag: 0.3~181 X-Git-Url: http://dolda2000.com/gitweb/?a=commitdiff_plain;h=7b2663a4c07e756aa44cb0e2144cb8efee1fe00c;p=doldaconnect.git Disallow cross-user messages. git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/doldaconnect@742 959494ce-11ee-0310-bf91-de5d638817bd --- diff --git a/daemon/ui.c b/daemon/ui.c index a2ec720..8a56c1f 100644 --- a/daemon/ui.c +++ b/daemon/ui.c @@ -1251,7 +1251,7 @@ static void cmd_register(struct socket *sk, struct uidata *data, int argc, wchar return; } for(d2 = actives; d2 != NULL; d2 = d2->next) { - if((d2 != data) && d2->regname && !wcscmp(d2->regname, argv[1])) { + if((d2 != data) && (d2->userinfo == data->userinfo) && d2->regname && !wcscmp(d2->regname, argv[1])) { sq(sk, 0, L"516", L"Name already in use", NULL); return; } @@ -1277,12 +1277,12 @@ static void cmd_sendmsg(struct socket *sk, struct uidata *data, int argc, wchar_ if(argv[1][0] == L'#') { rcptid = wcstol(argv[1] + 1, NULL, 0); for(rcpt = actives; rcpt != NULL; rcpt = rcpt->next) { - if(rcpt->id == rcptid) + if((rcpt->userinfo == data->userinfo) && (rcpt->id == rcptid)) break; } } else { for(rcpt = actives; rcpt != NULL; rcpt = rcpt->next) { - if(rcpt->regname && !wcscmp(rcpt->regname, argv[1])) + if((rcpt->userinfo == data->userinfo) && rcpt->regname && !wcscmp(rcpt->regname, argv[1])) break; } }