I received the following note this AM. The problem is, I'm not quite sure how to fix it. Can one use PROTECT(coxlist(eval(PROTECT.... , do I create an intermediate variable, or otherwise?

I'm willing to update the code if someone will give me a pointer to the right documentation. This particular chunk was written when there was a lot of change going on in the callback mechanism and so there might be a safer and/or simpler and/or more standard aproach by now. The routine in question has to do with penalized Cox models, the C code needs to get the value of the penalty and the penalty is an arbitrary S expression passed down from top level.

Terry T

----------------------------

In survival_2.36-12 (and earlier), in the function cox_callback() at
cox_Rcallback.c:40:

    PROTECT(coxlist=eval(lang2(fexpr,data),rho));

the return value of the call to lang2() is vulnerable if allocations
within eval() give rise to garbage collection.

(Discovered during CXXR development.)

Andrew

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to