All pastes #200045 Raw Edit

Untitled

public text v1 · immutable
#200045 ·published 2006-10-12 22:19 UTC
rendered paste body
-----
#include <stdio.h>
#include <sys/resource.h>

main(){
    struct rlimit a;

    getrlimit(RLIMIT_NPROC, &a);
    printf("soft: %d hard: %d\nuid: %d euid: %d\n", a.rlim_cur, a.rlim_max, getuid(), geteuid());
    usleep(1000000);
    printf("(euid=%d) setuid(%d)=",geteuid(), getuid() );
    printf("%d", setuid(getuid()));
    printf(" (euid=%d)\n", geteuid());

}
----

Running this as a root suid, these are the results:
soft: -1 hard: -1
uid: 1000 euid: 0
(euid=0) setuid(1000)=0 (euid=1000)

after a ulimit -u 100

soft: 100 hard: 100
uid: 1000 euid: 0
(euid=0) setuid(1000)=0 (euid=1000)