diff --git a/modules_k/perl/perlfunc.c b/modules_k/perl/perlfunc.c index f65b9c0..9684a0d 100644 --- a/modules_k/perl/perlfunc.c +++ b/modules_k/perl/perlfunc.c @@ -127,16 +127,16 @@ int perl_exec2(struct sip_msg* _msg, char* fnc, char* mystr) { return -1; } - m = sv_newmortal(); - sv_setref_pv(m, "OpenSER::Message", (void *)_msg); - SvREADONLY_on(SvRV(m)); - ENTER; /* everything created after here */ SAVETMPS; /* ...is a temporary variable. */ PUSHMARK(SP); /* remember the stack pointer */ XPUSHs(m); /* Our reference to the stack... */ + m = sv_newmortal(); + sv_setref_pv(m, "OpenSER::Message", (void *)_msg); + SvREADONLY_on(SvRV(m)); + if (mystr) XPUSHs(sv_2mortal(newSVpv(mystr, strlen(mystr)))); /* Our string to the stack... */