mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-29 20:54:13 +01:00
Add check for writeable terminal
Submitted by: mark@grondar.za (and slightly modified)
This commit is contained in:
parent
25a5fb9862
commit
319b403916
@ -42,11 +42,30 @@ static char sccsid[] = "@(#)init_disp.c 8.2 (Berkeley) 2/16/94";
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/ioctl_compat.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <err.h>
|
||||
#include "talk.h"
|
||||
|
||||
/*
|
||||
* Make sure the callee can write to the screen
|
||||
*/
|
||||
void check_writeable()
|
||||
{
|
||||
char *tty;
|
||||
struct stat sb;
|
||||
|
||||
if ((tty = ttyname(STDERR_FILENO)) == NULL)
|
||||
err(1, "ttyname");
|
||||
if (stat(tty, &sb) < 0)
|
||||
err(1, "%s", tty);
|
||||
if (!(sb.st_mode & S_IWGRP))
|
||||
errx(1, "The callee cannot write to this terminal, use \"mesg y\".");
|
||||
}
|
||||
|
||||
/*
|
||||
* Set up curses, catch the appropriate signals,
|
||||
* and build the various windows.
|
||||
|
@ -55,6 +55,7 @@ static char sccsid[] = "@(#)talk.c 8.1 (Berkeley) 6/6/93";
|
||||
* Modified to run under 4.1a by Clem Cole and Peter Moore
|
||||
* Modified to run between hosts by Peter Moore, 8/19/82
|
||||
* Modified to run under 4.1c by Peter Moore 3/17/83
|
||||
* Fixed to not run with unwriteable terminals MRVM 28/12/94
|
||||
*/
|
||||
|
||||
main(argc, argv)
|
||||
@ -62,6 +63,7 @@ main(argc, argv)
|
||||
char *argv[];
|
||||
{
|
||||
get_names(argc, argv);
|
||||
check_writeable();
|
||||
init_display();
|
||||
open_ctl();
|
||||
open_sockt();
|
||||
|
Loading…
Reference in New Issue
Block a user