diff --git a/cde/programs/dtcm/server/rtable3.c b/cde/programs/dtcm/server/rtable3.c index faecb2aed..2828198d0 100644 --- a/cde/programs/dtcm/server/rtable3.c +++ b/cde/programs/dtcm/server/rtable3.c @@ -377,11 +377,13 @@ _DtCm_deregister_callback_3_svc(Registration_3 *r, struct svc_req *svcrq) stat = 0; - newreg = _DtCm_reg3_to_reg4(r); - newstat = _DtCm_deregister_callback_4_svc(newreg, svcrq); - stat = _DtCm_regstat4_to_regstat3(*newstat); + newreg = _DtCm_reg3_to_reg4(r); + if(newreg) { + newstat = _DtCm_deregister_callback_4_svc(newreg, svcrq); + stat = _DtCm_regstat4_to_regstat3(*newstat); - if (newreg!=NULL) xdr_free((xdrproc_t)_DtCm_xdr_Registration_4, (char*)newreg); + xdr_free((xdrproc_t)_DtCm_xdr_Registration_4, (char*)newreg); + } return(&stat); }