Disallow cross-user messages.
authorfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Tue, 21 Nov 2006 19:53:52 +0000 (19:53 +0000)
committerfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Tue, 21 Nov 2006 19:53:52 +0000 (19:53 +0000)
git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/doldaconnect@742 959494ce-11ee-0310-bf91-de5d638817bd

daemon/ui.c

index a2ec720..8a56c1f 100644 (file)
@@ -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;
        }
     }