mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-10 03:48:34 +00:00
safe_asterisk: Don't automatically exceed MAXFILES value of 2^20.
On systems with lots of RAM (e.g. 24GB) /proc/sys/fs/file-max divided by two can exceed the per-process file limit of 2^20. This patch ensures the value is capped. (Patch cleaned up by me.) ASTERISK-24011 #close Reported by: Michael Myles Patches: safe_asterisk-ulimit.diff uploaded by Michael Myles (License #6626) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@424875 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -24738,6 +24738,10 @@ static int handle_request_bye(struct sip_pvt *p, struct sip_request *req)
|
|||||||
transmit_response(p, "200 OK", req);
|
transmit_response(p, "200 OK", req);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Destroy any pending invites so we won't try to do another
|
||||||
|
* scheduled reINVITE. */
|
||||||
|
AST_SCHED_DEL_UNREF(sched, p->waitid, dialog_unref(p, "decrement refcount from sip_destroy because waitid won't be scheduled"));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,12 +63,17 @@ if test `id -u` != 0; then
|
|||||||
message "safe_asterisk was started by `id -n` (uid `id -u`)."
|
message "safe_asterisk was started by `id -n` (uid `id -u`)."
|
||||||
else
|
else
|
||||||
if `uname -s | grep Linux >/dev/null 2>&1`; then
|
if `uname -s | grep Linux >/dev/null 2>&1`; then
|
||||||
# maximum number of open files is set to the system maximum divided by two if
|
# maximum number of open files is set to the system maximum
|
||||||
# MAXFILES is not set.
|
# divided by two if MAXFILES is not set.
|
||||||
if test -z "$MAXFILES"; then
|
if test -z "$MAXFILES"; then
|
||||||
# just check if file-max is readable
|
# just check if file-max is readable
|
||||||
if test -r /proc/sys/fs/file-max; then
|
if test -r /proc/sys/fs/file-max; then
|
||||||
MAXFILES=$(( `cat /proc/sys/fs/file-max` / 2 ))
|
MAXFILES=$((`cat /proc/sys/fs/file-max` / 2))
|
||||||
|
# don't exceed upper limit of 2^20 for open
|
||||||
|
# files on systems where file-max is > 2^21
|
||||||
|
if test $MAXFILES -gt 1048576; then
|
||||||
|
MAXFILES=1048576
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
SYSCTL_MAXFILES="fs.file-max"
|
SYSCTL_MAXFILES="fs.file-max"
|
||||||
|
|||||||
Reference in New Issue
Block a user