
wk at gnupg
Mar 30, 2012, 6:18 AM
Post #2 of 2
(156 views)
Permalink
|
|
Re: gnupg-2.0.19: common/estream.c mixes void and int
[In reply to]
|
|
On Wed, 28 Mar 2012 18:06, beebe [at] math said: > The cause appears to be mixing of void and int in the file > common/estream.c in the definitions of the macros > ESTREAM_MUTEX_LOCK() .. ESTREAM_MUTEX_INITIALIZE() in > lines 177--188. okay, the fix is: # define ESTREAM_MUTEX_LOCK(mutex) \ (estream_pth_killed ? dummy_mutex_call_void ((mutex)) \ - : pth_mutex_acquire (&(mutex), 0, NULL)) + : (void)pth_mutex_acquire (&(mutex), 0, NULL)) > In function es_ftrylockfile() at line 2619, the value of > ESTREAM_TRYLOCK() is returned as an int, but a void cannot > be cast to an int. Hmmm, I can see the problem. We have: # define ESTREAM_MUTEX_TRYLOCK(mutex) \ (estream_pth_killed ? dummy_mutex_call_int ((mutex)) \ : ((pth_mutex_acquire (&(mutex), 1, NULL) == TRUE)? 0:-1)) #define ESTREAM_TRYLOCK(stream) ESTREAM_MUTEX_TRYLOCK (stream->intern->lock) int es_ftrylockfile (estream_t stream) { return ESTREAM_TRYLOCK (stream); } Thus, we either call a dummy functions which returns an int (dummy_mutex_call_int) or the result of the condition which is eitehr o or -1. > % ./configure --help | grep pth > --with-pth-prefix=PFX prefix where GNU Pth is installed (optional) > > says that Pth is optional. Either it is optional, or it is > required, but only one can be true. The help string is wrong. We need Pth. Shalom-Salam, Werner -- Die Gedanken sind frei. Ausnahmen regelt ein Bundesgesetz. _______________________________________________ Gnupg-devel mailing list Gnupg-devel [at] gnupg http://lists.gnupg.org/mailman/listinfo/gnupg-devel
|