TServerSocket memory leak

From: William J. Deninger (deninger@uiuc.edu)
Date: Tue Dec 23 1997 - 01:39:04 MET


Hello,

The TServerSocket::Accept() seems to be missing a TSocket delete in the
event that a socket connection isn't waiting.  When the
TServerSocket::SetOption( kNoBlock,1), is used and Accept is placed in a
working loop, system memory vanishes rather quickly.


 TSocket *TServerSocket::Accept()
{
TSocket *socket = new TSocket;
 Int_t soc = gSystem->AcceptConnection(fSocket);
if (soc == -1) return 0;
 if (soc == -2) return (TSocket*) -1;

etc...
}

I think it needs the following:

TSocket *TServerSocket::Accept()
{
TSocket *socket = new TSocket;
 Int_t soc = gSystem->AcceptConnection(fSocket);

if (soc == -1)
    {
    delete socket;
    return 0;
    }
 if (soc == -2)
    {
    delete socket;
    return (TSocket*) -1;
    }

...etc
}

William Deninger
deninger@uiuc.edu



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:26:23 MET