diff options
author | Cy Schubert <cy@FreeBSD.org> | 2004-10-28 22:33:41 +0000 |
---|---|---|
committer | Cy Schubert <cy@FreeBSD.org> | 2004-10-28 22:33:41 +0000 |
commit | 7435ded5ba1ce482c78720425f39822596a36979 (patch) | |
tree | 78aa9e82ec2c6939a749f31842cb6c6699b81bb6 /security/sudosh2 | |
parent | 8f15720c8451df633f2ee88bd58298c69a70342f (diff) | |
download | ports-7435ded5ba1ce482c78720425f39822596a36979.tar.gz ports-7435ded5ba1ce482c78720425f39822596a36979.zip |
Repair handling of ptys.
Notes
Notes:
svn path=/head/; revision=120441
Diffstat (limited to 'security/sudosh2')
-rw-r--r-- | security/sudosh2/Makefile | 1 | ||||
-rw-r--r-- | security/sudosh2/files/patch-src::sudosh.c | 42 |
2 files changed, 43 insertions, 0 deletions
diff --git a/security/sudosh2/Makefile b/security/sudosh2/Makefile index 67496042c3ce..cd58476af25a 100644 --- a/security/sudosh2/Makefile +++ b/security/sudosh2/Makefile @@ -7,6 +7,7 @@ PORTNAME= sudosh PORTVERSION= 1.4.1 +PORTREVISION= 1 CATEGORIES= security MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= ${PORTNAME:S/_/-/} diff --git a/security/sudosh2/files/patch-src::sudosh.c b/security/sudosh2/files/patch-src::sudosh.c new file mode 100644 index 000000000000..9f7d3a914cb3 --- /dev/null +++ b/security/sudosh2/files/patch-src::sudosh.c @@ -0,0 +1,42 @@ +--- src/sudosh.c.orig Tue Oct 26 18:01:24 2004 ++++ src/sudosh.c Thu Oct 28 15:18:50 2004 +@@ -75,6 +75,12 @@ + #define SIGCHLD SIGCLD + #endif + ++#ifdef __FreeBSD__ ++#include <sys/types.h> ++#include <sys/ioctl.h> ++#include <libutil.h> ++#endif ++ + static struct termios termorig; + static struct winsize winorig; + +@@ -377,15 +383,24 @@ + { + if ((p->mfd = open ("/dev/ptc", O_RDWR)) == -1) + { +- perror ("Cannot open cloning master pty"); +- return -1; ++#ifdef __FreeBSD__ ++ if (openpty(&p->mfd, &p->sfd, sname, NULL, NULL) == -1) ++ { ++#endif ++ perror ("Cannot open cloning master pty"); ++ return -1; ++#ifdef __FreeBSD__ ++ } ++#endif + } + } + + (void) unlockpt (p->mfd); + (void) grantpt (p->mfd); + ++#ifndef __FreeBSD__ + sname = (char *) ptsname (p->mfd); ++#endif + + if ((p->sfd = open (sname, O_RDWR)) == -1) + { |