diff options
author | Jesper Juhl <jesper.juhl@gmail.com> | 2006-03-25 03:08:11 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-25 08:23:00 -0800 |
commit | bda44e1d168ac76fce5183eb141592fc645c7818 (patch) | |
tree | d6467cd1b7062f18e3366586637e46adc1ba43e4 /sound | |
parent | 96a9b4d31eba4722ba7aad2cc15118a7799f499f (diff) |
[PATCH] OSS: Fix leak in awe_wave, also remove pointless cast.
Fix resource leak and remove pointless cast of kmalloc return value.
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/oss/awe_wave.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sound/oss/awe_wave.c b/sound/oss/awe_wave.c index b3ea719d33d..d1a0eb294d6 100644 --- a/sound/oss/awe_wave.c +++ b/sound/oss/awe_wave.c @@ -2944,7 +2944,7 @@ alloc_new_info(void) { awe_voice_list *newlist; - newlist = (awe_voice_list *)kmalloc(sizeof(*newlist), GFP_KERNEL); + newlist = kmalloc(sizeof(*newlist), GFP_KERNEL); if (newlist == NULL) { printk(KERN_ERR "AWE32: can't alloc info table\n"); return NULL; @@ -3547,8 +3547,10 @@ awe_load_guspatch(const char __user *addr, int offs, int size, int pmgr_flag) smp->checksum_flag = 0; smp->checksum = 0; - if ((rc = awe_write_wave_data(addr, sizeof_patch, smprec, -1)) < 0) + if ((rc = awe_write_wave_data(addr, sizeof_patch, smprec, -1)) < 0) { + kfree(vrec); return rc; + } sf->mem_ptr += rc; add_sf_sample(sf, smprec); |