aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/tty/pty.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c
index f5119184259c..b25d6c4014a5 100644
--- a/drivers/tty/pty.c
+++ b/drivers/tty/pty.c
@@ -560,20 +560,19 @@ static int pty_unix98_install(struct tty_driver *driver, struct tty_struct *tty)
560 return -ENOMEM; 560 return -ENOMEM;
561 if (!try_module_get(driver->other->owner)) { 561 if (!try_module_get(driver->other->owner)) {
562 /* This cannot in fact currently happen */ 562 /* This cannot in fact currently happen */
563 free_tty_struct(o_tty); 563 goto err_free_tty;
564 return -ENOMEM;
565 } 564 }
566 initialize_tty_struct(o_tty, driver->other, idx); 565 initialize_tty_struct(o_tty, driver->other, idx);
567 566
568 tty->termios = kzalloc(sizeof(struct ktermios[2]), GFP_KERNEL); 567 tty->termios = kzalloc(sizeof(struct ktermios[2]), GFP_KERNEL);
569 if (tty->termios == NULL) 568 if (tty->termios == NULL)
570 goto free_mem_out; 569 goto err_free_mem;
571 *tty->termios = driver->init_termios; 570 *tty->termios = driver->init_termios;
572 tty->termios_locked = tty->termios + 1; 571 tty->termios_locked = tty->termios + 1;
573 572
574 o_tty->termios = kzalloc(sizeof(struct ktermios[2]), GFP_KERNEL); 573 o_tty->termios = kzalloc(sizeof(struct ktermios[2]), GFP_KERNEL);
575 if (o_tty->termios == NULL) 574 if (o_tty->termios == NULL)
576 goto free_mem_out; 575 goto err_free_mem;
577 *o_tty->termios = driver->other->init_termios; 576 *o_tty->termios = driver->other->init_termios;
578 o_tty->termios_locked = o_tty->termios + 1; 577 o_tty->termios_locked = o_tty->termios + 1;
579 578
@@ -592,11 +591,12 @@ static int pty_unix98_install(struct tty_driver *driver, struct tty_struct *tty)
592 tty->count++; 591 tty->count++;
593 pty_count++; 592 pty_count++;
594 return 0; 593 return 0;
595free_mem_out: 594err_free_mem:
596 kfree(o_tty->termios); 595 kfree(o_tty->termios);
596 kfree(tty->termios);
597 module_put(o_tty->driver->owner); 597 module_put(o_tty->driver->owner);
598err_free_tty:
598 free_tty_struct(o_tty); 599 free_tty_struct(o_tty);
599 kfree(tty->termios);
600 return -ENOMEM; 600 return -ENOMEM;
601} 601}
602 602