GPG Lockfile (concurrency) issue, keyring lost: awarding 300$ for bugfix

Bernd Eckenfels lists at lina.inka.de
Sat Aug 21 03:50:38 CEST 2004


On Thu, Aug 19, 2004 at 11:55:20AM +0200, Werner Koch wrote:
>        {
>  	if (!h->disable)
>            {
> -	    if (h->locked)
> +	    if (h->locked && h->lockname)
>                unlink (h->lockname);
> -	    unlink (h->tname);
> +            if (h->tname)
> +              unlink (h->tname);
>  	    m_free (h->tname);
>  	    m_free (h->lockname);
>            }

this will do a m_free on null, is that intentional? Also, I dont know the
code around that region, but what is the sane behaviour on
"h->locked==false" and "h->lockname!=null"?

if (h->lockname)
{ 
  unlink(h->lockname);
  m_free(h->lockname);
}
if (h->tname)
{
  unlink(h->tname);
  m_free(h->tname);
}
h->locked=0;  // is this ok?

Greetings
Bernd
-- 
  (OO)      -- Bernd_Eckenfels at Mörscher_Strasse_8.76185Karlsruhe.de --
 ( .. )      ecki@{inka.de,linux.de,debian.org}  http://www.eckes.org/
  o--o     1024D/E383CD7E  eckes at IRCNet  v:+497211603874  f:+497211606754
(O____O)  When cryptography is outlawed, bayl bhgynjf jvyy unir cevinpl!



More information about the Gnupg-devel mailing list