|
@@ -321,7 +321,11 @@ static int mmc_ext_csd_open(struct inode *inode, struct file *filp)
|
|
for (i = 0; i < 512; i++)
|
|
for (i = 0; i < 512; i++)
|
|
n += sprintf(buf + n, "%02x", ext_csd[i]);
|
|
n += sprintf(buf + n, "%02x", ext_csd[i]);
|
|
n += sprintf(buf + n, "\n");
|
|
n += sprintf(buf + n, "\n");
|
|
- BUG_ON(n != EXT_CSD_STR_LEN);
|
|
|
|
|
|
+
|
|
|
|
+ if (n != EXT_CSD_STR_LEN) {
|
|
|
|
+ err = -EINVAL;
|
|
|
|
+ goto out_free;
|
|
|
|
+ }
|
|
|
|
|
|
filp->private_data = buf;
|
|
filp->private_data = buf;
|
|
kfree(ext_csd);
|
|
kfree(ext_csd);
|