Re: [exim] Returning static strings from dlfunc?

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Janne Snabb
Date:  
À: exim-users
Sujet: Re: [exim] Returning static strings from dlfunc?
On 05/07/2012 07:04 PM, Phil Pennock wrote:
> src/acl.c :
>
> ----------------------------8< cut here >8------------------------------
>     /* Connection variables must persist forever */

>
>     case ACLC_SET:
>       {
>       int old_pool = store_pool;
>       if (cb->u.varname[0] == 'c') store_pool = POOL_PERM;
>       acl_var_create(cb->u.varname)->data.ptr = string_copy(arg);
>       store_pool = old_pool;
>       }
>     break;
> ----------------------------8< cut here >8------------------------------


Excellent! I was just trying to find this bit of code in Exim source
tree to see what happens to the variable when I set it.

> So I'd continue to return in POOL_MAIN and let it be copied to
> POOL_PERM.


Yes. Looks like this is the correct solution because Exim makes another
copy of the acl_c_* variable contents and stores it in the correct pool.

Thanks a lot for your help!

--
Janne Snabb / EPIPE Communications
snabb@??? - http://epipe.com/