execution failure and core dump generation

Hi, I am running a c++ program in unix sun OS 5.9. There are two functions in a file which are being used by a third function in the same file. the two functions being used are of the same type. one function is returning a success and the control is redeemed by the calling function. for teh second function, it is executing fine and is returning a success, but the control is not taken back by the caliing function and a core dump is getting generated. what can be the reason ?

details of functions:
calling function :
int lnClassType::updateDP(updatestruct lupdatestruct, localstruct llocalstruct)
{
retVal = validateDP(lupdatestruct);
if ( FAILURE == updateDP( lupdatestruct,localstruct)) {
return FAILURE;
}
}

called functions:
int limitnodeClassType::validateDrwngPower(updatestruct lupdatestruct, localstruct llocalstruct)
int limitnodeClassType::updateAcctDrwngPower(updatestruct lupdatestruct, localstruct llocalstruct)

please suggest a solution for this.

Which of the 2 functions is causing the coredump?

function validateDP is goin thru fine. UpdateDP is giving the core. Included logs to find out wer exactly the execution is stopping. Found that updateDP is returning success, but the value is not being caught at the calling function and exectuin is stopping there. plz help.