X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Frunas.c;h=7dee28abedc6ce1f2d518e32a7d64d5c1a6cd3f4;hb=1d76b9222464f9e10128ae867cd56a9317da5d65;hp=cdc9cb79e604177467dd815992e12bdbe875e4f9;hpb=def5e0e8ef5df8ccf3003b5afbd57561cf262a25;p=lttng-tools.git diff --git a/src/common/runas.c b/src/common/runas.c index cdc9cb79e..7dee28abe 100644 --- a/src/common/runas.c +++ b/src/common/runas.c @@ -38,8 +38,19 @@ #define RUNAS_CHILD_STACK_SIZE 10485760 -#ifndef MAP_STACK -#define MAP_STACK 0 +#ifdef __FreeBSD__ +/* FreeBSD MAP_STACK always return -ENOMEM */ +#define LTTNG_MAP_STACK 0 +#else +#define LTTNG_MAP_STACK MAP_STACK +#endif + +#ifndef MAP_GROWSDOWN +#define MAP_GROWSDOWN 0 +#endif + +#ifndef MAP_ANONYMOUS +#define MAP_ANONYMOUS MAP_ANON #endif struct run_as_data { @@ -227,7 +238,7 @@ int run_as(int (*cmd)(void *data), void *data, uid_t uid, gid_t gid) run_as_data.retval_pipe = retval_pipe[1]; /* write end */ child_stack = mmap(NULL, RUNAS_CHILD_STACK_SIZE, PROT_WRITE | PROT_READ, - MAP_PRIVATE | MAP_GROWSDOWN | MAP_ANONYMOUS | MAP_STACK, + MAP_PRIVATE | MAP_GROWSDOWN | MAP_ANONYMOUS | LTTNG_MAP_STACK, -1, 0); if (child_stack == MAP_FAILED) { perror("mmap");