Dear ROOT developers,
TRint class has bugs related to variable fDefaultPrompt:
----------------------------------------------------------------------
OLD: fDefaultPrompt = "root [%d] "; // Bad string allocation.
NEW: fDefaultPrompt = StrDup("root [%d] ")
OLD: TRint::~TRint() {}
NEW: TRint::~TRint() { delete [] fDefaultPrompt;}
----------------------------------------------------------------------
Simple copy fDefaultPrompt=newPrompt is extremly dangerous thing. It must
be void.
const char *TRint::SetPrompt(const char *newPrompt)
{
// ....
if (strlen(newPrompt) <= 55)
{
delete [] fDefaultPrompt;
fDefaultPrompt = StrDup(newPrompt);
}
else
Error("SetPrompt", "newPrompt too long (> 55 characters)");
// return op;
return fDefaultPrompt; // Return new prompt.
}
-------------------------------------------------------------
With best wishes,
Alexander
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:42 MET