synclink: fix info leak in ioctl
authorSalva Peiró <speiro@ai2.upv.es>
Tue, 11 Mar 2014 18:31:23 +0000 (19:31 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 Mar 2014 23:13:23 +0000 (16:13 -0700)
The hdlcdev_ioctl() code fails to initialize the two padding bytes of
struct sync_serial_settings after the ->loopback member. Add an explicit
memset(0) before filling the structure to avoid the info leak.

Signed-off-by: Salva Peiró <speiro@ai2.upv.es>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/synclink.c
drivers/tty/synclinkmp.c

index 5ae14b46cce0709aab95904ca0082ac3a29f7d7a..d48e040cd8c5d5abc86fa77c99347899ed901b4b 100644 (file)
@@ -7866,6 +7866,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
                                              HDLC_FLAG_TXC_TXCPIN | HDLC_FLAG_TXC_DPLL |
                                              HDLC_FLAG_TXC_BRG    | HDLC_FLAG_TXC_RXCPIN);
 
+               memset(&new_line, 0, sizeof(new_line));
                switch (flags){
                case (HDLC_FLAG_RXC_RXCPIN | HDLC_FLAG_TXC_TXCPIN): new_line.clock_type = CLOCK_EXT; break;
                case (HDLC_FLAG_RXC_BRG    | HDLC_FLAG_TXC_BRG):    new_line.clock_type = CLOCK_INT; break;
index 144202eef6fe3a3a9bda7e5dc4527a71201bd6f5..53ba8537de8d2ad5d1ab24c73d809ddef4dcf2e4 100644 (file)
@@ -1766,6 +1766,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
                                              HDLC_FLAG_TXC_TXCPIN | HDLC_FLAG_TXC_DPLL |
                                              HDLC_FLAG_TXC_BRG    | HDLC_FLAG_TXC_RXCPIN);
 
+               memset(&new_line, 0, sizeof(new_line));
                switch (flags){
                case (HDLC_FLAG_RXC_RXCPIN | HDLC_FLAG_TXC_TXCPIN): new_line.clock_type = CLOCK_EXT; break;
                case (HDLC_FLAG_RXC_BRG    | HDLC_FLAG_TXC_BRG):    new_line.clock_type = CLOCK_INT; break;