]> git.baikalelectronics.ru Git - kernel.git/commitdiff
mkiss: fix scribble on freed memory
authorAlan <gnomes@lxorguk.ukuu.org.uk>
Wed, 6 Jan 2016 14:55:02 +0000 (14:55 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 6 Jan 2016 20:06:27 +0000 (15:06 -0500)
commit c53d2122e3b634fb49ca1ff4bb53c6d8d5966da3 fixed a user triggerable
scribble on free memory but added a new one which allows the user to
scribble even more and user controlled data into freed space.

As with 6pack we need to halt the queue before we free the buffers, because
the transmit logic is not protected by the semaphore.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/hamradio/mkiss.c

index 0b72b9de520721fee48d3557b817452e2830c613..85828f1534454dbfd4020e6407e6ad2a136af93c 100644 (file)
@@ -797,6 +797,11 @@ static void mkiss_close(struct tty_struct *tty)
         */
        if (!atomic_dec_and_test(&ax->refcnt))
                down(&ax->dead_sem);
+       /*
+        * Halt the transmit queue so that a new transmit cannot scribble
+        * on our buffers
+        */
+       netif_stop_queue(ax->dev);
 
        /* Free all AX25 frame buffers. */
        kfree(ax->rbuff);