]> andersk Git - gssapi-openssh.git/blobdiff - openssh/sshtty.c
Fixed a null pointer dereference introduced during the usage metrics
[gssapi-openssh.git] / openssh / sshtty.c
index 21ade4e5153dc6ec9ab790ab728700f3049ec813..78498908fc60399fc4f577a6f06f933461fbc176 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshtty.c,v 1.13 2008/05/19 15:45:07 djm Exp $ */
+/* $OpenBSD: sshtty.c,v 1.1 2001/04/14 16:33:20 stevesk Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
 
 #include "includes.h"
 
-#include <sys/types.h>
-#include <stdio.h>
-#include <termios.h>
-#include <pwd.h>
-
-#include "sshpty.h"
+#include "sshtty.h"
+#include "log.h"
 
 static struct termios _saved_tio;
 static int _in_raw_mode = 0;
 
-struct termios *
+int
+in_raw_mode(void)
+{
+       return _in_raw_mode;    
+}
+
+struct termios
 get_saved_tio(void)
 {
-       return _in_raw_mode ? &_saved_tio : NULL;
+       return _saved_tio;
 }
 
 void
@@ -62,6 +64,8 @@ leave_raw_mode(void)
                perror("tcsetattr");
        else
                _in_raw_mode = 0;
+
+       fatal_remove_cleanup((void (*) (void *)) leave_raw_mode, NULL);
 }
 
 void
@@ -76,9 +80,6 @@ enter_raw_mode(void)
        _saved_tio = tio;
        tio.c_iflag |= IGNPAR;
        tio.c_iflag &= ~(ISTRIP | INLCR | IGNCR | ICRNL | IXON | IXANY | IXOFF);
-#ifdef IUCLC
-       tio.c_iflag &= ~IUCLC;
-#endif
        tio.c_lflag &= ~(ISIG | ICANON | ECHO | ECHOE | ECHOK | ECHONL);
 #ifdef IEXTEN
        tio.c_lflag &= ~IEXTEN;
@@ -90,4 +91,6 @@ enter_raw_mode(void)
                perror("tcsetattr");
        else
                _in_raw_mode = 1;
+
+       fatal_add_cleanup((void (*) (void *)) leave_raw_mode, NULL);
 }
This page took 0.032921 seconds and 4 git commands to generate.