Free rad_perlconf_hv in correct perl context
authorHerwin Weststrate <herwin@snt.utwente.nl>
Mon, 22 Aug 2016 17:55:20 +0000 (19:55 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 23 Aug 2016 18:12:45 +0000 (14:12 -0400)
This should fix #1675

src/modules/rlm_perl/rlm_perl.c

index 702b12d..28252c6 100644 (file)
@@ -1000,12 +1000,13 @@ static int mod_detach(void *instance)
        rlm_perl_t      *inst = (rlm_perl_t *) instance;
        int             exitstatus = 0, count = 0;
 
-       if (inst->rad_perlconf_hv != NULL) hv_undef(inst->rad_perlconf_hv);
 
-       if (inst->perl_parsed && inst->func_detach) {
+       if (inst->perl_parsed) {
                dTHXa(inst->perl);
                PERL_SET_CONTEXT(inst->perl);
-               {
+               if (inst->rad_perlconf_hv != NULL) hv_undef(inst->rad_perlconf_hv);
+
+               if (inst->func_detach) {
                        dSP; ENTER; SAVETMPS;
                        PUSHMARK(SP);