diff options
-rw-r--r-- | sys/fs/smbfs/smbfs_vnops.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/fs/smbfs/smbfs_vnops.c b/sys/fs/smbfs/smbfs_vnops.c index 286832f..011851b 100644 --- a/sys/fs/smbfs/smbfs_vnops.c +++ b/sys/fs/smbfs/smbfs_vnops.c @@ -998,7 +998,8 @@ smbfs_advlock(ap) break; case SEEK_END: /* 'size' is always >= 0 */ - if (fl->l_start > 0 && size > OFF_MAX - fl->l_start) + if ((fl->l_start > 0 && size > OFF_MAX - fl->l_start) || + (fl->l_start < 0 && size + fl->l_start > OFF_MAX)) return EOVERFLOW; start = fl->l_start + size; break; |