memory leaks
Dirk Stoecker
gcrypt at dstoecker.de
Thu Jan 12 15:05:50 CET 2006
On Thu, 12 Jan 2006, Marcus Brinkmann wrote:
> > I am
> > nevertheless required to have this page released due to the LGPL license
> > of libgcrypt.
>
> You are required to comply with the conditions of the LGPL. These
> conditions say nothing about a web page.
It is one of the cheapest forms of complying to LGPL/GPL.
> being ignored completely. You say you don't want to spend any amount of
> time to make the patches perfect and separate when getting ignored.
> However, why do you expect that we spend this time to make the patches
> perfect and separate if we don't even know what they would do?
Because I already had multiple time bad experience and don't believe
additional work will help.
I will no longer discuss this part about who is to blame for what as like
always this brings nothing for both sides. Any further discussions
restricted to the helpful parts of technical issues.
> > You have better insight into the topic to
> > find out, how this would be needed to be implemented, as reference
> > counting in the current state with automatic initializer calls is a bit
> > complicated.
>
> I don't understand what's complicated about it. Can you elaborate?
Reference counting would require exactly one INIT and one FINISH for each
party using the software. As there are "automagically" initialisations in
some calls, it may be complicated to track down different parties (e.g.
libraries, which do no explicit init call). I do not know the internals
well enough to decide how exact reference counting would be. It is always
more complicated to implement such stuff in existing code, where it has
not been designed from the very beginning.
This greatly depends on the real world usage of libgcrypt. Probably a
first step would be an assertion for these cases, so that the programmers
get an information and implement explicit init and shutdown calls. In
the time inbetween the finalize call would not release anything and a
configuration option in autoconf would toogle dummy/real-mode.
Maybe the best would be the introduction of "contexts" into the API/ABI as
additional option and having a global context for legacy applications as
Frediano explained in his mail. Using the deprecated attribute and proper
texts how to fix it in the header file will make updating of legacy
applications much easier. It would not break ABI and API.
In 2-3 years the deprecated stuff and the global context can be removed
(breaking the API) and the problem is solved. Thought before this the
new API must be designed or there will be incompatible changes for
libgcrypt 2 again.
Ciao
--
http://www.dstoecker.de/ (PGP key available)
More information about the Gcrypt-devel
mailing list