summaryrefslogtreecommitdiff
path: root/security/sudosh3
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2005-04-13 02:03:46 +0000
committerCy Schubert <cy@FreeBSD.org>2005-04-13 02:03:46 +0000
commitef7f9d2c9ce3d0abe40212e2c2a6c1dadda01121 (patch)
tree7943186ecbeb05d0a74e8b3e3a297d418a4188fb /security/sudosh3
parent- update to 0.11 (diff)
Udate 1.4.1 --> 1.4.8
Notes
Notes: svn path=/head/; revision=133189
Diffstat (limited to 'security/sudosh3')
-rw-r--r--security/sudosh3/Makefile3
-rw-r--r--security/sudosh3/distinfo4
-rw-r--r--security/sudosh3/files/patch-src::sudosh.c170
3 files changed, 78 insertions, 99 deletions
diff --git a/security/sudosh3/Makefile b/security/sudosh3/Makefile
index 0c7e2fb214a7..4d7cfd12a79f 100644
--- a/security/sudosh3/Makefile
+++ b/security/sudosh3/Makefile
@@ -6,8 +6,7 @@
#
PORTNAME= sudosh
-PORTVERSION= 1.4.1
-PORTREVISION= 3
+PORTVERSION= 1.4.8
CATEGORIES= security
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME:S/_/-/}
diff --git a/security/sudosh3/distinfo b/security/sudosh3/distinfo
index 33bc8b88756e..8f64dee43174 100644
--- a/security/sudosh3/distinfo
+++ b/security/sudosh3/distinfo
@@ -1,2 +1,2 @@
-MD5 (sudosh-1.4.1.tar.bz2) = de57f0642faf1b85215a95a811f82bbc
-SIZE (sudosh-1.4.1.tar.bz2) = 90353
+MD5 (sudosh-1.4.8.tar.bz2) = ab86b3c4908942c4ddac3dde3fd2c25e
+SIZE (sudosh-1.4.8.tar.bz2) = 94126
diff --git a/security/sudosh3/files/patch-src::sudosh.c b/security/sudosh3/files/patch-src::sudosh.c
index eccb20ad878e..7c906c4b31ab 100644
--- a/security/sudosh3/files/patch-src::sudosh.c
+++ b/security/sudosh3/files/patch-src::sudosh.c
@@ -1,5 +1,5 @@
---- src/sudosh.c.orig Tue Oct 26 18:01:24 2004
-+++ src/sudosh.c Sat Nov 13 19:31:14 2004
+--- src/sudosh.c.orig Tue Mar 22 21:05:05 2005
++++ src/sudosh.c Thu Mar 24 14:54:25 2005
@@ -24,6 +24,9 @@
#include <unistd.h>
#include <signal.h>
@@ -23,65 +23,53 @@
static struct termios termorig;
static struct winsize winorig;
-@@ -99,6 +108,9 @@
- static void rawmode (int);
- static int findms (struct pst *);
- void mysyslog (int, const char *, ...);
+@@ -105,6 +114,9 @@
+ static int findms(struct pst *);
+ void mysyslog(int, const char *, ...);
+ void mklogdir(void);
+#ifdef __FreeBSD__
+static void sanemode(int ttyfd);
+#endif
- int
- main (int argc, char *argv[], char *environ[])
-@@ -255,8 +267,9 @@
- mysyslog (LOG_INFO, start_msg);
- mysyslog (LOG_INFO, "to view this session type: sudosh-replay %s-%i",
- user, now);
+ int main(int argc, char *argv[], char *environ[])
+ {
+@@ -265,8 +277,9 @@
+ mysyslog(LOG_INFO, start_msg);
+ mysyslog(LOG_INFO, "to view this session type: sudosh-replay %s-%s-%i",
+ sudo_user, user_name, now);
-
+#ifndef __FreeBSD__
- rawmode (0);
+ rawmode(0);
+#endif
- if (findms (&pspair) < 0)
- {
-@@ -269,6 +282,9 @@
- case 0:
- close (pspair.mfd);
- prepchild (&pspair);
-+#ifdef __FreeBSD__
-+ rawmode (0);
-+#endif
- case -1:
- perror ("fork failed");
- bye (1);
-@@ -276,6 +292,9 @@
- close (pspair.sfd);
+ if (findms(&pspair) < 0) {
+ perror("open pty failed");
+@@ -283,6 +296,9 @@
+ default:
+ close(pspair.sfd);
}
-
+#ifdef __FreeBSD__
-+ rawmode(0);
++ rawmode (0);
+#endif
- setuid (getuid ());
-
- memset (&sa, 0, sizeof sa);
-@@ -377,15 +396,32 @@
- {
- if ((p->mfd = open ("/dev/ptc", O_RDWR)) == -1)
- {
-- perror ("Cannot open cloning master pty");
-- return -1;
+
+ setuid(getuid());
+
+@@ -372,15 +388,30 @@
+
+ if ((p->mfd = open("/dev/ptmx", O_RDWR)) == -1) {
+ if ((p->mfd = open("/dev/ptc", O_RDWR)) == -1) {
+- perror("Cannot open cloning master pty");
+- return -1;
+#ifdef __FreeBSD__
-+#define PTYLEN 16
-+ if ((int)(sname= malloc(PTYLEN)) == -1)
-+ {
-+ perror("Cannot allocate memory");
-+ return -1;
++#define PTYLEN 16
++ if ((int)(sname= malloc(PTYLEN)) == -1) {
++ perror("Cannot allocate memory");
++ return -1;
+ }
-+ if (openpty(&p->mfd, &p->sfd, sname, NULL, NULL) == -1)
-+ {
++ if (openpty(&p->mfd, &p->sfd, sname, NULL, NULL) == -1) {
+#endif
-+ perror ("Cannot open cloning master pty");
-+ return -1;
++ perror("Cannot open cloning master pty");
++ return -1;
+#ifdef __FreeBSD__
+ }
+#endif
@@ -89,85 +77,77 @@
}
+#if !defined(__FreeBSD_version) || (defined(__FreeBSD_version) && __FreeBSD_version >= 500000)
- (void) unlockpt (p->mfd);
- (void) grantpt (p->mfd);
+ (void) unlockpt(p->mfd);
+ (void) grantpt(p->mfd);
+#endif
+#ifndef __FreeBSD__
- sname = (char *) ptsname (p->mfd);
+ sname = (char *) ptsname(p->mfd);
+#endif
- if ((p->sfd = open (sname, O_RDWR)) == -1)
- {
-@@ -456,11 +492,53 @@
- abort ();
+ if ((p->sfd = open(sname, O_RDWR)) == -1) {
+ perror("open slave pty");
+@@ -447,10 +478,46 @@
+ abort();
}
+#ifdef __FreeBSD__
-+static void
-+sanemode(int ttyfd)
++static void sanemode(int ttyfd)
+{
-+ static struct termios termnew;
++ static struct termios termnew;
+
-+ if (tcgetattr(ttyfd, &termnew) == -1)
-+ {
-+ perror ("tcgetattr failed");
-+ exit (1);
++ if (tcgetattr(ttyfd, &termnew) == -1) {
++ perror ("tcgetattr failed");
++ exit (1);
+ }
-+ termnew.c_cflag = TTYDEF_CFLAG | (termnew.c_cflag & CLOCAL);
-+ termnew.c_iflag = TTYDEF_IFLAG;
-+ termnew.c_iflag |= ICRNL;
-+ /* preserve user-preference flags in lflag */
++ termnew.c_cflag = TTYDEF_CFLAG | (termnew.c_cflag & CLOCAL);
++ termnew.c_iflag = TTYDEF_IFLAG;
++ termnew.c_iflag |= ICRNL;
++ /* preserve user-preference flags in lflag */
+#define LKEEP (ECHOKE|ECHOE|ECHOK|ECHOPRT|ECHOCTL|ALTWERASE|TOSTOP|NOFLSH)
-+ termnew.c_lflag = TTYDEF_LFLAG | (termnew.c_lflag & LKEEP);
-+ termnew.c_oflag = TTYDEF_OFLAG;
-+ if (tcsetattr(ttyfd, TCSAFLUSH, &termnew) == -1)
-+ {
-+ perror ("tcsetattr (sane) failed");
-+ exit (1);
++ termnew.c_lflag = TTYDEF_LFLAG | (termnew.c_lflag & LKEEP);
++ termnew.c_oflag = TTYDEF_OFLAG;
++ if (tcsetattr(ttyfd, TCSAFLUSH, &termnew) == -1) {
++ perror ("tcsetattr (sane) failed");
++ exit (1);
+ }
+}
+#endif
+
- static void
- rawmode (int ttyfd)
+ static void rawmode(int ttyfd)
{
- static struct termios termnew;
+ static struct termios termnew;
+#ifdef __FreeBSD__
-+ if (tcgetattr(ttyfd, &termnew) == -1)
-+ {
-+ perror ("tcgetattr failed");
-+ exit (1);
++ if (tcgetattr(ttyfd, &termnew) == -1) {
++ perror ("tcgetattr failed");
++ exit (1);
+ }
-+ cfmakeraw(&termnew);
-+ termnew.c_cflag &= ~(CSIZE|PARENB);
-+ termnew.c_cflag |= CS8;
-+ if (tcsetattr(ttyfd, TCSADRAIN, &termnew) == -1)
-+ {
-+ perror ("tcsetattr (raw) failed");
-+ exit (1);
++ cfmakeraw(&termnew);
++ termnew.c_cflag &= ~(CSIZE|PARENB);
++ termnew.c_cflag |= CS8;
++ if (tcsetattr(ttyfd, TCSADRAIN, &termnew) == -1) {
++ perror ("tcsetattr (raw) failed");
++ exit (1);
+ }
-+ return;
+#else __FreeBSD__
#ifdef TCGETS
- if (ioctl (ttyfd, TCGETS, &termorig) == -1)
- {
-@@ -484,6 +562,7 @@
+ if (ioctl(ttyfd, TCGETS, &termorig) == -1) {
+ perror("ioctl TCGETS failed");
+@@ -472,12 +539,16 @@
#ifdef TCSETS
- (void) ioctl (ttyfd, TCSETS, &termnew);
+ (void) ioctl(ttyfd, TCSETS, &termnew);
#endif
+#endif __FreeBSD__
}
- static void
-@@ -491,6 +570,9 @@
+ static void bye(int signum)
{
#ifdef TCSETS
- (void) ioctl (0, TCSETS, &termorig);
+ (void) ioctl(0, TCSETS, &termorig);
+#endif
+#ifdef __FreeBSD__
-+ sanemode(0);
++ sanemode(0);
#endif
- fclose (fttime);
+ fclose(fttime);