Folks,
There are two bugs in src/XrdXr/XrdXrClient.cc that causes xrclient to
dump core if you run the logout command. The client->logout() call
deletes worker but does not set it to 0. Then when client is deleted,
it unconditionally deletes the worker again. The simple fixes are
1. in the method XrdXrClient::logout()
if (rc == 0) {
delete worker;
//ADD THE NEXT LINE
worker = 0;
TRACE(Logout, "logout ok.");
}
2. in the destructor ~XrdXrClient() change the "delete worker" to
if (worker) { delete worker; }
One might argue for a review of the logout code deleting the worker,
but these changes stop the core dumps.
--
Gregory J. Sharp email: [log in to unmask]
Wilson Synchrotron Laboratory url:
http://www.lepp.cornell.edu/~gregor
Dryden Rd ph: +1 607 255 4882
Ithaca, NY 14853 fax: +1 607 255 8062
|