Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52d17851 authored by stephen hemminger's avatar stephen hemminger Committed by David S. Miller
Browse files

hdlc: fix null-deref on allocation failure



If alloc_netdev() failed and return NULL, then the next instruction
would dereference it. Found by Coverity.

Compile tested only. Not sure if anyone still uses this driver
(or the whole WAN subsystem).

Signed-off-by: default avatarStephen Hemminger <stephen@networkplumber.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6f97532e
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -1075,11 +1075,10 @@ static int fr_add_pvc(struct net_device *frad, unsigned int dlci, int type)

	used = pvc_is_used(pvc);

	if (type == ARPHRD_ETHER) {
	if (type == ARPHRD_ETHER)
		dev = alloc_netdev(0, "pvceth%d", NET_NAME_UNKNOWN,
				   ether_setup);
		dev->priv_flags &= ~IFF_TX_SKB_SHARING;
	} else
	else
		dev = alloc_netdev(0, "pvc%d", NET_NAME_UNKNOWN, pvc_setup);

	if (!dev) {
@@ -1088,9 +1087,10 @@ static int fr_add_pvc(struct net_device *frad, unsigned int dlci, int type)
		return -ENOBUFS;
	}

	if (type == ARPHRD_ETHER)
	if (type == ARPHRD_ETHER) {
		dev->priv_flags &= ~IFF_TX_SKB_SHARING;
		eth_hw_addr_random(dev);
	else {
	} else {
		*(__be16*)dev->dev_addr = htons(dlci);
		dlci_to_q922(dev->broadcast, dlci);
	}