lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <46BBDE7B.7060908@c3sl.ufpr.br>
Date:	Fri, 10 Aug 2007 00:41:47 -0300
From:	Tiago Vignatti <vignatti@...l.ufpr.br>
To:	linux-kernel@...r.kernel.org
Subject: mlock() is working?

Hi guys,

I'm trying to lock some piece of the code in memory using mlock(). I did 
a simple program to test it and to certify I using my own simple page 
fault notifier [0]. The program is below.

-- cut --

#include <stdio.h>
#include <sys/mman.h>

#define SIZE 10000

int mlock_all = 0;

int
f(void)
{
     int c[SIZE];
     int i;

     if (mlock_all) {
         if (!mlockall(MCL_CURRENT))
             fprintf(stderr, "mlockall'ed succefully\n");
         else
             perror("mlockall");
     }
     else {
         if (!mlock(&c[0], SIZE))
             fprintf(stderr, "mlock'ed succefully\n");
         else
             perror("mlock");
     }

     fprintf(stderr, "start: 0x%x, end: 0x%x\n", &c[0], &c[SIZE]);

     for (i = 0; i < SIZE; i++)
         c[i] = i;

}
int
main(int argc, char **argv)
{
     if (argv[1])
         mlock_all = 1;

     while(1) {
         f();
         sleep (15);
     }

     return 0;
}

-- cut --


So, if I use mlockall() I always obtained the desired result, i.e., I 
lock the 'c[SIZE]'. But when I switch to mlock() it never works and my 
page fault notifier prints all pages concerning 'c[SIZE]'. Am I missing 
something? Is it possible to lock the automatic variables?

My Linux is 2.6.22.2.

my regards

[0] http://lkml.org/lkml/2007/7/27/11
     http://lkml.org/lkml/2007/7/27/8

-- 
Tiago Vignatti
C3SL - Centro de Computação Científica e Software Livre
www.c3sl.ufpr.br
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ