diff options
Diffstat (limited to '')
-rw-r--r-- | util/ChangeLog | 4 | ||||
-rw-r--r-- | util/miscutil.c | 8 | ||||
-rw-r--r-- | util/secmem.c | 13 |
3 files changed, 20 insertions, 5 deletions
diff --git a/util/ChangeLog b/util/ChangeLog index d282d9a3e..668c40fe5 100644 --- a/util/ChangeLog +++ b/util/ChangeLog @@ -1,3 +1,7 @@ +Fri Sep 18 16:25:47 1998 Werner Koch (wk@(none)) + + * secmem.c (lock_pool): Kludge for broken mlock on HPUX 10.20 + Tue Sep 15 17:52:21 1998 Werner Koch (wk@(none)) * miscutil.c (asctimestamp): New. diff --git a/util/miscutil.c b/util/miscutil.c index 00293089d..b9f8288d9 100644 --- a/util/miscutil.c +++ b/util/miscutil.c @@ -61,16 +61,16 @@ strtimestamp( u32 stamp ) const char * asctimestamp( u32 stamp ) { - static char buffer[30]; + static char buffer[50]; struct tm *tp; time_t atime = stamp; tp = localtime( &atime ); #ifdef HAVE_STRFTIME - mem2str( buffer, asctime(tp), DIM(buffer) ); - #else - strftime( buffer, DIM(buffer)-1, "%c", tp ); + strftime( buffer, DIM(buffer)-1, "%c %Z", tp ); buffer[DIM(buffer)-1] = 0; + #else + mem2str( buffer, asctime(tp), DIM(buffer) ); #endif return buffer; } diff --git a/util/secmem.c b/util/secmem.c index 44df08b16..e75a13512 100644 --- a/util/secmem.c +++ b/util/secmem.c @@ -75,11 +75,22 @@ lock_pool( void *p, size_t n ) uid_t uid; int err; + uid = getuid(); + + #ifdef HAVE_BROKEN_MLOCK + if( uid ) + err = EPERM; + else { + err = mlock( p, n ); + if( err && errno ) + err = errno; + } + #else err = mlock( p, n ); if( err && errno ) err = errno; + #endif - uid = getuid(); if( uid && !geteuid() ) { if( setuid( uid ) ) log_fatal("failed to reset uid: %s\n", strerror(errno)); |