diff options
author | Michael Hunold <devnull@localhost> | 2004-06-21 18:53:27 +0000 |
---|---|---|
committer | Michael Hunold <devnull@localhost> | 2004-06-21 18:53:27 +0000 |
commit | f4a94062511dd119d6ae332cf5967f9eb1316ae1 (patch) | |
tree | 0e69be58396d0fa12611e3adc5cac9d90c3bc150 /linux/drivers | |
parent | 2e251128662e9ebd203f569d91c60a9b36a0c179 (diff) | |
download | mediapointer-dvb-s2-f4a94062511dd119d6ae332cf5967f9eb1316ae1.tar.gz mediapointer-dvb-s2-f4a94062511dd119d6ae332cf5967f9eb1316ae1.tar.bz2 |
- don't forget to call release_firmware(), thanks to Kenneth Aafløy <lists@kenneth.aafloy.net>
Diffstat (limited to 'linux/drivers')
-rw-r--r-- | linux/drivers/media/dvb/ttpci/av7110.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/linux/drivers/media/dvb/ttpci/av7110.c b/linux/drivers/media/dvb/ttpci/av7110.c index 007130a6c..fbb8578ee 100644 --- a/linux/drivers/media/dvb/ttpci/av7110.c +++ b/linux/drivers/media/dvb/ttpci/av7110.c @@ -1321,20 +1321,27 @@ static int get_firmware(struct av7110* av7110) " (error %i)\n", ret); return -EINVAL; } + if (fw->size <= 200000) { printk("dvb-ttpci: this firmware is way too small.\n"); + release_firmware(fw); return -EINVAL; } + /* check if the firmware is available */ av7110->bin_fw = (unsigned char*) vmalloc(fw->size); if (NULL == av7110->bin_fw) { DEB_D(("out of memory\n")); + release_firmware(fw); return -ENOMEM; } + memcpy(av7110->bin_fw, fw->data, fw->size); av7110->size_fw = fw->size; if ((ret = check_firmware(av7110))) vfree(av7110->bin_fw); + + release_firmware(fw); return ret; } #endif |