summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c')
-rw-r--r--drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c
index 473c3b0..8fa4c89 100644
--- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c
+++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c
@@ -1992,9 +1992,10 @@ invalid_port_id:
compat_copy_fm_pcd_cc_tbl_get_miss(compat_param, &param, COMPAT_K_TO_US);
if (copy_to_user((ioc_compat_fm_pcd_cc_tbl_get_miss_params_t*) compat_ptr(arg),
compat_param,
- sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t)))
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t))){
+ XX_Free(compat_param);
RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG);
-
+ }
XX_Free(compat_param);
}
else
@@ -2066,9 +2067,10 @@ invalid_port_id:
compat_copy_fm_pcd_cc_tbl_get_miss(compat_param, &param, COMPAT_K_TO_US);
if (copy_to_user((ioc_compat_fm_pcd_cc_tbl_get_miss_params_t*) compat_ptr(arg),
compat_param,
- sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t)))
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t))){
+ XX_Free(compat_param);
RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG);
-
+ }
XX_Free(compat_param);
}
else
@@ -2259,6 +2261,7 @@ invalid_port_id:
else
{
XX_Free(compat_param);
+ XX_Free(param);
err = E_INVALID_VALUE;
break;
}
@@ -3242,18 +3245,21 @@ t_Error LnxwrpFmIOCTL(t_LnxWrpFmDev *p_LnxWrpFmDev, unsigned int cmd, unsigned l
{
if (copy_to_user((ioc_fm_revision_info_t *)compat_ptr(arg),
param,
- sizeof(ioc_fm_revision_info_t)))
+ sizeof(ioc_fm_revision_info_t))){
+ XX_Free(param);
RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG);
+ }
}
else
#endif
{
if (copy_to_user((ioc_fm_revision_info_t *)arg,
param,
- sizeof(ioc_fm_revision_info_t)))
+ sizeof(ioc_fm_revision_info_t))){
+ XX_Free(param);
RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG);
+ }
}
-
XX_Free(param);
break;
}