[pacman-dev] alpm_add_pkg() stealing ownership of allocated objects

Xavier chantry.xavier at gmail.com
Tue Apr 12 02:50:22 EDT 2011


Rémy Oudompheng wrote:
> Hello,
> 
> While doing experiments, I discovered that alpm_add_pkg() seemingly
> stole the ownership of a pmpkg_t previously allocated by
> alpm_pkg_load(). I am a bit confused here. I think the documentation
> can definitely be improved here: can someone confirm the following
> statements?
> 
> * a pmpkg_t* returned by alpm_pkg_load() must be freed by the caller
> unless otherwise specified
> * if alpm_add_pkg() is called on that package, then the caller MUST
> NOT free the pmpkg_t afterwards.
> 
> Am I right? Are there any other functions with similar behaviour to
> alpm_add_pkg() ?
> 


I cannot look now, but you might be right, and this definitely needs careful
reviewing. Can you open a ticket ?

I wonder if add_pkg should handle pmpkg from files differently and duplicate
these before adding them to the transaction. This would be less confusing to the
frontend, which would always need to free a pmpkg coming from pkg_load.


More information about the pacman-dev mailing list