(lock_pool) [_AIX]: Don't use plock.
authorWerner Koch <wk@gnupg.org>
Thu, 23 Oct 2003 07:38:07 +0000 (07:38 +0000)
committerWerner Koch <wk@gnupg.org>
Thu, 23 Oct 2003 07:38:07 +0000 (07:38 +0000)
util/ChangeLog
util/secmem.c

index b39ca59..ed18fe8 100644 (file)
@@ -1,3 +1,7 @@
+2003-10-23  Werner Koch  <wk@gnupg.org>
+
+       * secmem.c (lock_pool) [_AIX]: Don't use plock.
+
 2003-10-12  David Shaw  <dshaw@jabberwocky.com>
 
        * srv.c: OSX 10.2.8/Darwin 6.8 seems to have some #include
index 7dfa668..2d260a3 100644 (file)
@@ -132,9 +132,20 @@ lock_pool( void *p, size_t n )
     /* ick. but at least we get secured memory. about to lock
        entire data segment. */
 #ifdef HAVE_PLOCK
+# ifdef _AIX
+    /* The configure for AIX returns broken mlock but the plock has
+       the strange requirement to somehow set the stack limit first.
+       The problem might turn out in indeterministic program behaviour
+       and hanging processes which can somehow be solved when enough
+       processes are clogging up the memory.  To get this problem out
+       of the way we simply don't try to lock the memory at all.
+       */    
+    err = EPERM;
+# else /* !_AIX */
     err = plock( DATLOCK );
     if( err && errno )
         err = errno;
+# endif /*_AIX*/
 #else /*!HAVE_PLOCK*/
     if( uid ) {
        errno = EPERM;