From: Alexey Khoroshilov Date: Thu, 10 Jul 2014 22:43:01 +0000 (-0400) Subject: farsync: fix invalid memory accesses in fst_add_one() and fst_init_card() X-Git-Tag: omap-for-v3.17/fixes-against-rc2~289^2~14 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19eeb2f9e750f47c805f66e3b0e889b12557d80f;p=pandora-kernel.git farsync: fix invalid memory accesses in fst_add_one() and fst_init_card() There are several issues in fst_add_one() and fst_init_card(): - invalid pointer dereference at card->ports[card->nports - 1] if register_hdlc_device() fails for the first port in fst_init_card(); - fst_card_array overflow at fst_card_array[no_of_cards_added] because there is no checks for array overflow; - use after free because pointer to deallocated card is left in fst_card_array if something fails after fst_card_array[no_of_cards_added] = card; - several leaks on failure paths in fst_add_one(). The patch fixes all the issues and makes code more readable. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Signed-off-by: David S. Miller --- Reading git-diff-tree failed