View Issue Details

IDProjectCategoryView StatusLast Update
0001822unrealircdpublic2004-05-18 17:15
ReporterDukePyrolator Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionopen 
Product Version3.2 
Summary0001822: SVSJOIN with channelpassword
Descriptionjoin #chan1,#chan2 pass1,pass2 <-- works
svsjoin #chan1,#chan2 pass1,pass2 <-- dont work

Syntax: JOIN <chan>,<chan2>,<chan3> <key1>,<key2>,<key3>
Syntax: SVSJOIN <nick> <channel>[,<channel2>..]

3rd party modules

Activities

syzop

2004-05-18 15:05

administrator   ~0006320

CMD_FUNC(m_svsjoin)
{
    aClient *acptr;
    if (!IsULine(sptr))
        return 0;

    if (parc != 3 || !(acptr = find_person(parv[1], NULL)))
        return 0;

    if (MyClient(acptr))
    {
        parv[0] = parv[1];
        parv[1] = parv[2];
        (void)m_join(acptr, acptr, 2, parv);
    }
    else
        sendto_one(acptr, ":%s SVSJOIN %s %s", parv[0],
            parv[1], parv[2]);

    return 0;
}

Would be quite easy to fix.
Funny note: it doesn't NULL terminate at parv[2] (but parv[3] will be NULL).. so if you are in #test and your key is #test a 'SVSJOIN Blah #test' works *grin* ;).

DukePyrolator

2004-05-18 16:47

reporter   ~0006322

CMD_FUNC(m_svsjoin)
{
        aClient *acptr;
        if (!IsULine(sptr))
                return 0;

        if (((parc != 3) && (parc != 4)) || !(acptr = find_person(parv[1], NULL)))
                return 0;

        if (MyClient(acptr))
        {
                parv[0] = parv[1];
                parv[1] = parv[2];
                parv[2] = parv[3];
                (void)m_join(acptr, acptr, 2, parv);
        }
        else
                sendto_one(acptr, ":%s SVSJOIN %s %s %s", parv[0],
                    parv[1], parv[2], parv[3]);

        return 0;
}


It works and I'm happy now. :-)

syzop

2004-05-18 16:50

administrator   ~0006323

That code is pretty bad ;). [null pointer, parc count, interresting compare]
anyway, I got a fix (or 'enhancement', whatever you call it) queued :).

syzop

2004-05-18 17:15

administrator   ~0006328

Fixed in CVS [.2.2234.2.21] :).

Issue History

Date Modified Username Field Change
2004-05-18 14:54 DukePyrolator New Issue
2004-05-18 15:05 syzop Note Added: 0006320
2004-05-18 16:47 DukePyrolator Note Added: 0006322
2004-05-18 16:50 syzop Note Added: 0006323
2004-05-18 17:15 syzop Status new => closed
2004-05-18 17:15 syzop Note Added: 0006328