[SCSI] be2iscsi: fix memory leak in error path
There are two memory leaks in cases 'ISCSI_NET_PARAM_VLAN_ID' and 'ISCSI_NET_PARAM_VLAN_PRIORITY' and also a potential junk pointer free if mgmt_get_if_info() returns error because if_info will be unset and it is stack allocated. Signed-off-by: Geyslan G. Bem <geyslan@gmail.com> Cc: Jayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
Родитель
6634ff7ca2
Коммит
0e7c60cb8c
|
@ -541,10 +541,8 @@ static int be2iscsi_get_if_param(struct beiscsi_hba *phba,
|
||||||
ip_type = BE2_IPV6;
|
ip_type = BE2_IPV6;
|
||||||
|
|
||||||
len = mgmt_get_if_info(phba, ip_type, &if_info);
|
len = mgmt_get_if_info(phba, ip_type, &if_info);
|
||||||
if (len) {
|
if (len)
|
||||||
kfree(if_info);
|
|
||||||
return len;
|
return len;
|
||||||
}
|
|
||||||
|
|
||||||
switch (param) {
|
switch (param) {
|
||||||
case ISCSI_NET_PARAM_IPV4_ADDR:
|
case ISCSI_NET_PARAM_IPV4_ADDR:
|
||||||
|
@ -569,7 +567,7 @@ static int be2iscsi_get_if_param(struct beiscsi_hba *phba,
|
||||||
break;
|
break;
|
||||||
case ISCSI_NET_PARAM_VLAN_ID:
|
case ISCSI_NET_PARAM_VLAN_ID:
|
||||||
if (if_info->vlan_priority == BEISCSI_VLAN_DISABLE)
|
if (if_info->vlan_priority == BEISCSI_VLAN_DISABLE)
|
||||||
return -EINVAL;
|
len = -EINVAL;
|
||||||
else
|
else
|
||||||
len = sprintf(buf, "%d\n",
|
len = sprintf(buf, "%d\n",
|
||||||
(if_info->vlan_priority &
|
(if_info->vlan_priority &
|
||||||
|
@ -577,7 +575,7 @@ static int be2iscsi_get_if_param(struct beiscsi_hba *phba,
|
||||||
break;
|
break;
|
||||||
case ISCSI_NET_PARAM_VLAN_PRIORITY:
|
case ISCSI_NET_PARAM_VLAN_PRIORITY:
|
||||||
if (if_info->vlan_priority == BEISCSI_VLAN_DISABLE)
|
if (if_info->vlan_priority == BEISCSI_VLAN_DISABLE)
|
||||||
return -EINVAL;
|
len = -EINVAL;
|
||||||
else
|
else
|
||||||
len = sprintf(buf, "%d\n",
|
len = sprintf(buf, "%d\n",
|
||||||
((if_info->vlan_priority >> 13) &
|
((if_info->vlan_priority >> 13) &
|
||||||
|
|
Загрузка…
Ссылка в новой задаче