secmem.c on OS X

Gordon Worley redbird@rbisland.cx
Sat Sep 15 05:05:01 2001


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

At 9:24 PM -0400 9/14/01, Gordon Worley wrote:

>Thanks to Laurie Brown <laurieb@mac.com> we have a version of
>secmem.c that makes mlock work on OS X. I've pasted a diff below.
>Anyway, I'm brining this here to see what needs to be done to get
>this fix implemented (I realize that patching config.h is not the
>right thing to do, but it's the thing that she got working :-)).
A few minutes late, but better than never: testing code: #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <sys/mman.h> #include <sys/types.h> #include <fcntl.h> int main() { char *pool; int err; long int pgsize = getpagesize(); pool = malloc( 4096 + pgsize ); if( !pool ) return 2; pool += (pgsize - ((long int)pool % pgsize)); err = mlock( pool, 4096 ); if( !err || errno == EPERM ) { return 0; /* okay */ } else { /* check to see if mlock needs the memory permissions set */ mprotect( pool, 4096, PROT_EXEC | PROT_WRITE | PROT_READ); err = mlock( pool, 4096 ); if ( !err || errno == EPERM ) return 3; /* okay - but have to set memory permissions */ return 1; /* hmmm */ } } - -- Gordon Worley `When I use a word,' Humpty Dumpty http://www.rbisland.cx/ said, `it means just what I choose redbird@rbisland.cx it to mean--neither more nor less.' PGP: 0xBBD3B003 --Lewis Carroll -----BEGIN PGP SIGNATURE----- Version: PGPfreeware 6.5.8 for non-commercial use <http://www.pgp.com> Comment: keyserver http://pgpkeys.mit.edu:11371 iQA/AwUBO6LE627zd/e707ADEQJ5YQCgk85XUGGyKIVAmwQjsgffqjaBSpYAnjHr wmjcwxwiiKUh75EqDEdwvfIx =/6aY -----END PGP SIGNATURE-----