diff options
author | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2010-02-01 03:12:19 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-04 04:00:30 +0100 |
commit | 8ed030dd0aa400d18c63861c2c6deb7c38f4edde (patch) | |
tree | c84de9bd4c14cc9e565b887638d05597e6b6e56c /net/dccp/ccid.c | |
parent | sky2: fix transmit DMA map leakage (diff) | |
download | linux-8ed030dd0aa400d18c63861c2c6deb7c38f4edde.tar.xz linux-8ed030dd0aa400d18c63861c2c6deb7c38f4edde.zip |
dccp: fix bug in cache allocation
This fixes a bug introduced in commit de4ef86cfce60d2250111f34f8a084e769f23b16
("dccp: fix dccp rmmod when kernel configured to use slub", 17 Jan): the
vsnprintf used sizeof(slab_name_fmt), which became truncated to 4 bytes, since
slab_name_fmt is now a 4-byte pointer and no longer a 32-character array.
This lead to error messages such as
FATAL: Error inserting dccp: No buffer space available
>> kernel: [ 1456.341501] kmem_cache_create: duplicate cache cci
generated due to the truncation after the 3rd character.
Fixed for the moment by introducing a symbolic constant. Tested to fix the bug.
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp/ccid.c')
-rw-r--r-- | net/dccp/ccid.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/dccp/ccid.c b/net/dccp/ccid.c index 57dfb9c8c4f2..ff16e9df1969 100644 --- a/net/dccp/ccid.c +++ b/net/dccp/ccid.c @@ -83,7 +83,7 @@ static struct kmem_cache *ccid_kmem_cache_create(int obj_size, char *slab_name_f va_list args; va_start(args, fmt); - vsnprintf(slab_name_fmt, sizeof(slab_name_fmt), fmt, args); + vsnprintf(slab_name_fmt, CCID_SLAB_NAME_LENGTH, fmt, args); va_end(args); slab = kmem_cache_create(slab_name_fmt, sizeof(struct ccid) + obj_size, 0, |