summaryrefslogtreecommitdiff
path: root/resource.c
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2017-06-14 13:09:23 -0500
committerWilliam Pitcock <nenolod@dereferenced.org>2017-06-14 13:09:23 -0500
commitf67416822a54109bd9cfa0fd210d7d8f53412ced (patch)
tree7d3d14933f39ca160d706d1bec25ce541a188962 /resource.c
parent2b58008b911d9dc8354b9001e22b594fa6456dd1 (diff)
downloadgcompat-f67416822a54109bd9cfa0fd210d7d8f53412ced.tar.gz
gcompat-f67416822a54109bd9cfa0fd210d7d8f53412ced.tar.bz2
gcompat-f67416822a54109bd9cfa0fd210d7d8f53412ced.tar.xz
gcompat-f67416822a54109bd9cfa0fd210d7d8f53412ced.zip
move all compatibility library stuff into libgcompat/
Diffstat (limited to 'resource.c')
-rw-r--r--resource.c37
1 files changed, 0 insertions, 37 deletions
diff --git a/resource.c b/resource.c
deleted file mode 100644
index 029b31e..0000000
--- a/resource.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <sys/resource.h> /* setrlimit, struct rlimit */
-#include <assert.h> /* assert */
-#include <dlfcn.h> /* dlsym, RTLD_NEXT */
-#include <stdlib.h> /* NULL */
-#include <string.h> /* memcpy */
-
-/* Sigh.
- * Valve compiled Steam against the glibc2.2 version of setrlimit.
- * This broken version aliased 0 to RLIM_INFINITY.
- *
- * So, what you have to do is: if you want to run steam with this gcompat,
- * ensure you compile *without* defining NO_BROKEN_SHADOW_SETRLIMIT.
- * If you do *not* want to run steam with this gcompat, define it.
- *
- * The only problem with enabling this all the time is that if a binary
- * really does need a ulimit to be 0 for any reason (such as coredumps), it
- * very obviously won't work here.
- */
-#ifndef NO_BROKEN_SHADOW_SETRLIMIT
-int (*real_rlimit)(int, const struct rlimit *);
-
-int setrlimit(int resource, const struct rlimit *rlim)
-{
- struct rlimit my_rlim;
- real_rlimit = dlsym(RTLD_NEXT, "setrlimit");
- assert(real_rlimit != NULL);
-
- memcpy(&my_rlim, rlim, sizeof(struct rlimit));
-
- if(my_rlim.rlim_cur == 0)
- {
- my_rlim.rlim_cur = my_rlim.rlim_max;
- }
-
- return real_rlimit(resource, &my_rlim);
-}
-#endif