diff options
Diffstat (limited to 'cpukit/telnetd/pty.c')
-rw-r--r-- | cpukit/telnetd/pty.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/cpukit/telnetd/pty.c b/cpukit/telnetd/pty.c index 14d688018f..3c511f9e98 100644 --- a/cpukit/telnetd/pty.c +++ b/cpukit/telnetd/pty.c @@ -71,7 +71,7 @@ struct pty_tt; typedef struct pty_tt pty_t; struct pty_tt { - char *devname; + char devname[17]; struct rtems_termios_tty *ttyp; tcflag_t c_cflag; int opened; @@ -432,8 +432,8 @@ rtems_device_driver my_pty_initialize( */ for (ndx=0;ndx<rtems_telnetd_maximum_ptys;ndx++) { - telnet_ptys[ndx].devname = (char*)malloc(strlen("/dev/ptyXX")+1); - sprintf(telnet_ptys[ndx].devname,"/dev/pty%X",ndx); + /* devname is included in the structure */ + sprintf(telnet_ptys[ndx].devname,"/dev/pty%02X",ndx); telnet_ptys[ndx].ttyp = NULL; telnet_ptys[ndx].c_cflag = CS8|B9600; telnet_ptys[ndx].socket = -1; @@ -491,8 +491,9 @@ static int pty_do_finalize(void) status = (rtems_status_code)unlink(telnet_ptys[ndx].devname); if (status != RTEMS_SUCCESSFUL) perror("removing pty device node from file system"); - else - free(telnet_ptys[ndx].devname); + else { + telnet_ptys[ndx].devname[0] = '\0'; + } }; free ( telnet_ptys ); |