diff options
author | mkmm@gmx-topmail.de <mkmm@gmx-topmail.de> | 2010-10-05 13:00:06 +0200 |
---|---|---|
committer | Miklos Szeredi <mszeredi@suse.cz> | 2010-11-11 16:18:39 +0100 |
commit | 573854609be45f38629823e20931d55c05561e51 (patch) | |
tree | 6df1b87022e478eacaa0dc1def8cad0f109892b9 | |
parent | 14db38278afb67f47c542e63e91299fe49b1516b (diff) | |
download | fuse-573854609be45f38629823e20931d55c05561e51.tar.gz |
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.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | lib/ulockmgr.c | 4 |
2 files changed, 12 insertions, 0 deletions
@@ -1,3 +1,11 @@ +2010-10-05 Miklos Szeredi <miklos@szeredi.hu> + + * 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. + Patch by Markus Ammer + 2010-09-28 Miklos Szeredi <miklos@szeredi.hu> * Fix ambiguous symbol version for fuse_chan_new. 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; |