From ec4a01f94389ce01d667641c77cd34608c72c6f3 Mon Sep 17 00:00:00 2001 From: "mkmm@gmx-topmail.de" Date: Tue, 5 Oct 2010 13:00:06 +0200 Subject: add missing argument check in ulockmgr.c Add missing argument check in ulockmgr.c to prevent calling ulockmgr_server with illegal arguments. This would cause an ever growing list of ulockmgr_server processes with an endless list of open files which finally exceeds the open file handle limit. It appears samba is sometimes calling flock with illegal / weired values. --- lib/ulockmgr.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/ulockmgr.c') diff --git a/lib/ulockmgr.c b/lib/ulockmgr.c index 6703cd0..b875c50 100644 --- a/lib/ulockmgr.c +++ b/lib/ulockmgr.c @@ -400,6 +400,10 @@ int ulockmgr_op(int fd, int cmd, struct flock *lock, const void *owner, if (cmd != F_GETLK && cmd != F_SETLK && cmd != F_SETLKW) return -EINVAL; + if (lock->l_type != F_RDLCK && lock->l_type != F_WRLCK && + lock->l_type != F_UNLCK) + return -EINVAL; + if (lock->l_whence != SEEK_SET && lock->l_whence != SEEK_CUR && lock->l_whence != SEEK_END) return -EINVAL; -- cgit v1.2.3