linux/fs/nfsd
Rasmus Villemoes ef17af2a81 fs: nfsd: Fix signedness bug in compare_blob
Bugs similar to the one in acbbe6fbb2 (kcmp: fix standard comparison
bug) are in rich supply.

In this variant, the problem is that struct xdr_netobj::len has type
unsigned int, so the expression o1->len - o2->len _also_ has type
unsigned int; it has completely well-defined semantics, and the result
is some non-negative integer, which is always representable in a long
long. But this means that if the conditional triggers, we are
guaranteed to return a positive value from compare_blob.

In this case it could be fixed by

-       res = o1->len - o2->len;
+       res = (long long)o1->len - (long long)o2->len;

but I'd rather eliminate the usually broken 'return a - b;' idiom.

Reviewed-by: Jeff Layton <jlayton@primarydata.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2014-12-09 11:29:14 -05:00
..
acl.h nfsd4: remove nfs4_acl_new 2014-07-08 17:14:27 -04:00
auth.c nfsd: silence sparse warning about accessing credentials 2014-07-17 16:15:35 -04:00
auth.h nfsd: Remove nfsd_luid, nfsd_lgid, nfsd_ruid and nfsd_rgid 2013-02-13 06:15:51 -08:00
cache.h nfsd: Remove the cache_hash list 2014-08-17 12:00:12 -04:00
current_stateid.h nfsd41: use current stateid by value 2012-02-15 11:20:45 -05:00
export.c nfsd: allow turning off nfsv3 readdir_plus 2014-08-18 15:12:14 -04:00
export.h NFSD: Using exp_get for export getting 2014-06-23 11:31:36 -04:00
fault_inject.c nfsd: remove old fault injection infrastructure 2014-08-05 10:55:10 -04:00
idmap.h nfsd4: use xdr_reserve_space in attribute encoding 2014-05-28 14:52:34 -04:00
Kconfig lockd: move lockd's grace period handling into its own module 2014-09-17 16:33:11 -04:00
lockd.c nfsd: Remove deprecated nfsctl system call and related code. 2011-07-15 18:58:42 -04:00
Makefile NFSD: Added fault injection 2011-11-07 21:10:47 -05:00
netns.h nfsd: add some comments to the nfsd4 object definitions 2014-08-05 16:09:20 -04:00
nfs2acl.c NFSD: Check acl returned from get_acl/posix_acl_from_mode 2014-07-11 15:03:53 -04:00
nfs3acl.c NFSD: Check acl returned from get_acl/posix_acl_from_mode 2014-07-11 15:03:53 -04:00
nfs3proc.c nfsd: allow turning off nfsv3 readdir_plus 2014-08-18 15:12:14 -04:00
nfs3xdr.c NFSD: Using min/max/min_t/max_t for calculate 2014-06-23 11:31:36 -04:00
nfs4acl.c NFSD: Check acl returned from get_acl/posix_acl_from_mode 2014-07-11 15:03:53 -04:00
nfs4callback.c nfsd: eliminate "to_delegation" define 2014-10-01 12:28:01 -04:00
nfs4idmap.c NFSD: Full checking of authentication name 2014-09-03 17:43:03 -04:00
nfs4proc.c sunrpc: move rq_splice_ok flag into rq_flags 2014-12-09 11:22:21 -05:00
nfs4recover.c Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-10-13 16:23:15 +02:00
nfs4state.c fs: nfsd: Fix signedness bug in compare_blob 2014-12-09 11:29:14 -05:00
nfs4xdr.c sunrpc: move rq_splice_ok flag into rq_flags 2014-12-09 11:22:21 -05:00
nfscache.c sunrpc: add a generic rq_flags field to svc_rqst and move rq_secure to it 2014-12-09 11:21:20 -05:00
nfsctl.c nfsd: minor off by one checks in __write_versions() 2014-12-01 12:45:28 -07:00
nfsd.h nfsd: correctly define v4.2 support attributes 2014-11-19 12:03:19 -05:00
nfsfh.c sunrpc: add a generic rq_flags field to svc_rqst and move rq_secure to it 2014-12-09 11:21:20 -05:00
nfsfh.h nfsd: add appropriate __force directives to filehandle generation code 2014-06-23 11:31:37 -04:00
nfsproc.c nfsd: print status when nfsd4_open fails to open file it just created 2014-07-29 23:08:38 -04:00
nfssvc.c sunrpc: move rq_dropme flag into rq_flags 2014-12-09 11:22:20 -05:00
nfsxdr.c NFSD: Using min/max/min_t/max_t for calculate 2014-06-23 11:31:36 -04:00
state.h nfsd: convert nfs4_file searches to use RCU 2014-11-07 16:56:11 -05:00
stats.c nfsd: move <linux/nfsd/stats.h> to fs/nfsd 2014-05-06 17:54:55 -04:00
stats.h nfsd: move <linux/nfsd/stats.h> to fs/nfsd 2014-05-06 17:54:55 -04:00
vfs.c sunrpc: move rq_splice_ok flag into rq_flags 2014-12-09 11:22:21 -05:00
vfs.h nfsd: Add ALLOCATE support 2014-11-07 16:19:49 -05:00
xdr3.h nfsd: fix encode_entryplus_baggage stack usage 2014-01-23 13:50:27 -05:00
xdr4.h nfsd: Add DEALLOCATE support 2014-11-07 16:20:15 -05:00
xdr4cb.h nfsd4: check backchannel attributes on create_session 2013-04-09 16:53:56 -04:00
xdr.h nfsd: handle vfs_getattr errors in acl protocol 2013-02-26 02:46:09 -05:00