diff options
author | wtchang%redhat.com <devnull@localhost> | 2006-09-11 23:13:44 +0000 |
---|---|---|
committer | wtchang%redhat.com <devnull@localhost> | 2006-09-11 23:13:44 +0000 |
commit | aad5fb68daf7c0c6ce386631db0be947428311e7 (patch) | |
tree | 877669bddc5b263f2c503f9c1d15d93180382ef6 | |
parent | 7451ed5b7c26c6d76446312d95a09ed69b2c24ed (diff) | |
download | nspr-hg-aad5fb68daf7c0c6ce386631db0be947428311e7.tar.gz |
351470: setuid root programs linked with NSPR allow elevation of privilege.
r=nelson, sr=wtc
Tag: MOZILLA_1_8_BRANCH
-rw-r--r-- | pr/src/io/prfdcach.c | 8 | ||||
-rw-r--r-- | pr/src/misc/pratom.c | 2 |
2 files changed, 10 insertions, 0 deletions
diff --git a/pr/src/io/prfdcach.c b/pr/src/io/prfdcach.c index aea19dff..d1277fcd 100644 --- a/pr/src/io/prfdcach.c +++ b/pr/src/io/prfdcach.c @@ -277,6 +277,14 @@ void _PR_InitFdCache(void) if (NULL != low) _pr_fd_cache.limit_low = atoi(low); if (NULL != high) _pr_fd_cache.limit_high = atoi(high); + if (_pr_fd_cache.limit_low < 0) + _pr_fd_cache.limit_low = 0; + if (_pr_fd_cache.limit_low > FD_SETSIZE) + _pr_fd_cache.limit_low = FD_SETSIZE; + + if (_pr_fd_cache.limit_high > FD_SETSIZE) + _pr_fd_cache.limit_high = FD_SETSIZE; + if (_pr_fd_cache.limit_high < _pr_fd_cache.limit_low) _pr_fd_cache.limit_high = _pr_fd_cache.limit_low; diff --git a/pr/src/misc/pratom.c b/pr/src/misc/pratom.c index 24028e56..35b86c0d 100644 --- a/pr/src/misc/pratom.c +++ b/pr/src/misc/pratom.c @@ -120,6 +120,8 @@ int index; if (num_atomic_locks > MAX_ATOMIC_LOCKS) num_atomic_locks = MAX_ATOMIC_LOCKS; + else if (num_atomic_locks < 1) + num_atomic_locks = 1; else { num_atomic_locks = PR_FloorLog2(num_atomic_locks); num_atomic_locks = 1L << num_atomic_locks; |