2001-07-12 22:07:26

by Rolf Fokkens

[permalink] [raw]
Subject: Kernel 2.4.6: Why doesn't mprotect () check ulimit/rlim?

While trying to restrict Oracle's memory claims I tried a strace while
making Oracle claim huge amounts of memory. It appears that Oracle claims
all it's memory by calling mprotect, which (unlike brk ()) doesn't check
rlim.

I don't know the details of this, but it seems a little buggy to me. If not
buggy, then what's the use of rlim?

Cheers,

Rolf


2001-07-12 22:40:38

by Rolf Fokkens

[permalink] [raw]
Subject: RE: Kernel 2.4.6: Why doesn't mprotect () check ulimit/rlim?

I'd expect the same and strace may have missed the preceding mmap. However
/proc/<PID>/maps shows all the mprotect results. Before the mprotect call
the memory doesn't show up in /proc/<PID>/maps which makes me the think
there hasen't been a prior mmap, brk or whatever.

-----Original Message-----
From: Mark Hahn [mailto:[email protected]]
Sent: Friday, July 13, 2001 12:14 AM
To: Rolf Fokkens
Subject: Re: Kernel 2.4.6: Why doesn't mprotect () check ulimit/rlim?


> While trying to restrict Oracle's memory claims I tried a strace while
> making Oracle claim huge amounts of memory. It appears that Oracle claims
> all it's memory by calling mprotect, which (unlike brk ()) doesn't check
> rlim.

afaik, mprotect only modifies page protection; it doesn't allocate.
it's the preceeding mmap that should check limits.