|
@@ -2560,7 +2560,6 @@ qeth_process_inbound_buffer(struct qeth_card *card,
|
|
int offset;
|
|
int offset;
|
|
int rxrc;
|
|
int rxrc;
|
|
__u16 vlan_tag = 0;
|
|
__u16 vlan_tag = 0;
|
|
- __u16 *vlan_addr;
|
|
|
|
|
|
|
|
/* get first element of current buffer */
|
|
/* get first element of current buffer */
|
|
element = (struct qdio_buffer_element *)&buf->buffer->element[0];
|
|
element = (struct qdio_buffer_element *)&buf->buffer->element[0];
|
|
@@ -4844,9 +4843,11 @@ qeth_arp_query(struct qeth_card *card, char __user *udata)
|
|
"(0x%x/%d)\n",
|
|
"(0x%x/%d)\n",
|
|
QETH_CARD_IFNAME(card), qeth_arp_get_error_cause(&rc),
|
|
QETH_CARD_IFNAME(card), qeth_arp_get_error_cause(&rc),
|
|
tmp, tmp);
|
|
tmp, tmp);
|
|
- copy_to_user(udata, qinfo.udata, 4);
|
|
|
|
|
|
+ if (copy_to_user(udata, qinfo.udata, 4))
|
|
|
|
+ rc = -EFAULT;
|
|
} else {
|
|
} else {
|
|
- copy_to_user(udata, qinfo.udata, qinfo.udata_len);
|
|
|
|
|
|
+ if (copy_to_user(udata, qinfo.udata, qinfo.udata_len))
|
|
|
|
+ rc = -EFAULT;
|
|
}
|
|
}
|
|
kfree(qinfo.udata);
|
|
kfree(qinfo.udata);
|
|
return rc;
|
|
return rc;
|
|
@@ -4992,8 +4993,10 @@ qeth_snmp_command(struct qeth_card *card, char __user *udata)
|
|
if (rc)
|
|
if (rc)
|
|
PRINT_WARN("SNMP command failed on %s: (0x%x)\n",
|
|
PRINT_WARN("SNMP command failed on %s: (0x%x)\n",
|
|
QETH_CARD_IFNAME(card), rc);
|
|
QETH_CARD_IFNAME(card), rc);
|
|
- else
|
|
|
|
- copy_to_user(udata, qinfo.udata, qinfo.udata_len);
|
|
|
|
|
|
+ else {
|
|
|
|
+ if (copy_to_user(udata, qinfo.udata, qinfo.udata_len))
|
|
|
|
+ rc = -EFAULT;
|
|
|
|
+ }
|
|
|
|
|
|
kfree(ureq);
|
|
kfree(ureq);
|
|
kfree(qinfo.udata);
|
|
kfree(qinfo.udata);
|