• Wen Yang's avatar
    net: axienet: fix a potential double free in axienet_probe() · ef86ea98
    Wen Yang authored
    There is a possible use-after-free issue in the axienet_probe():
    
    1701:	np = of_parse_phandle(pdev->dev.of_node, "axistream-connected", 0);
    1702:   if (np) {
    ...
    1787:		of_node_put(np); ---> released here
    1788:		lp->eth_irq = platform_get_irq(pdev, 0);
    1789:	} else {
    ...
    1801:	}
    1802:	if (IS_ERR(lp->dma_regs)) {
    ...
    1805:		of_node_put(np); ---> double released here
    1806:		goto free_netdev;
    1807:	}
    
    We solve this problem by removing the unnecessary of_node_put().
    
    Fixes: 28ef9ebd ("net: axienet: make use of axistream-connected attribute optional")
    Signed-off-by: default avatarWen Yang <wen.yang99@zte.com.cn>
    Cc: Anirudha Sarangi <anirudh@xilinx.com>
    Cc: John Linn <John.Linn@xilinx.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Michal Simek <michal.simek@xilinx.com>
    Cc: Robert Hancock <hancock@sedsystems.ca>
    Cc: netdev@vger.kernel.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: default avatarRobert Hancock <hancock@sedsystems.ca>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ef86ea98
xilinx_axienet_main.c 56.7 KB