aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--util/ChangeLog4
-rw-r--r--util/miscutil.c8
-rw-r--r--util/secmem.c13
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));