Fix error path in gw_create_job() to prevent double put of netdevs.
git-svn-id: svn://svn.berlios.de//socketcan/trunk@1128
030b6a49-0b11-0410-94ab-
b0dab22257f2
return;
}
- gwj->handled_frames++;
-
/* mark routed frames with a 'special' sk value */
nskb->sk = GW_SK_MAGIC;
nskb->dev = gwj->dst_dev;
/* send to netdevice */
if (can_send(nskb, gwj->flags & CAN_TX_LOOPBACK))
gwj->dropped_frames++;
+ else
+ gwj->handled_frames++;
}
static inline int can_gw_register_filter(struct gw_job *gwj)
dev_put(gwj->src_dev);
dev_put(gwj->dst_dev);
- if (!err)
- return 0;
+ if (err)
+ goto fail;
+
+ return 0;
put_src_dst_fail:
dev_put(gwj->dst_dev);