2018-09-10 00:42:26 +02:00
|
|
|
diff -uNr aterm-1.0.1/src/command.c aterm-1.0.1.mod/src/command.c
|
|
|
|
--- aterm-1.0.1/src/command.c 2006-06-26 21:01:20.000000000 +0300
|
2018-11-28 18:51:49 +01:00
|
|
|
+++ aterm-1.0.1.mod/src/command.c 2018-11-28 19:42:34.678816349 +0200
|
2018-11-07 21:37:56 +01:00
|
|
|
@@ -425,45 +425,7 @@
|
|
|
|
void
|
|
|
|
privileges(int mode)
|
|
|
|
{
|
|
|
|
-#ifdef HAVE_SETEUID
|
|
|
|
- static uid_t euid;
|
|
|
|
- static gid_t egid;
|
|
|
|
-
|
|
|
|
- switch (mode) {
|
|
|
|
- case IGNORE:
|
|
|
|
- /*
|
|
|
|
- * change effective uid/gid - not real uid/gid - so we can switch
|
|
|
|
- * back to root later, as required
|
|
|
|
- */
|
|
|
|
- seteuid(getuid());
|
|
|
|
- setegid(getgid());
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- case SAVE:
|
|
|
|
- euid = geteuid();
|
|
|
|
- egid = getegid();
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- case RESTORE:
|
|
|
|
- seteuid(euid);
|
|
|
|
- setegid(egid);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
-#else
|
|
|
|
-# ifndef __CYGWIN32__
|
|
|
|
- switch (mode) {
|
|
|
|
- case IGNORE:
|
|
|
|
- setuid(getuid());
|
|
|
|
- setgid(getgid());
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- case SAVE:
|
|
|
|
- break;
|
|
|
|
- case RESTORE:
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
-# endif
|
|
|
|
-#endif
|
|
|
|
+// do nothing on Termux.
|
|
|
|
}
|
|
|
|
/*}}} */
|
|
|
|
|
|
|
|
@@ -552,20 +514,10 @@
|
2018-09-10 00:42:26 +02:00
|
|
|
{
|
|
|
|
int fd = -1;
|
|
|
|
|
|
|
|
-#if defined (__sgi)
|
|
|
|
- ptydev = ttydev = _getpty(&fd, O_RDWR | O_NDELAY, 0622, 0);
|
|
|
|
- if (ptydev == NULL)
|
|
|
|
- goto Failed;
|
|
|
|
-#elif defined (__svr4__) || defined(__CYGWIN32__) || defined(__lnx21__)
|
|
|
|
- {
|
|
|
|
extern char *ptsname();
|
|
|
|
|
|
|
|
/* open the STREAMS, clone device /dev/ptmx (master pty) */
|
|
|
|
-#ifdef HAVE_GETPT
|
|
|
|
- if ((fd = getpt()) < 0) {
|
|
|
|
-#else
|
|
|
|
if ((fd = open("/dev/ptmx", O_RDWR)) < 0) {
|
|
|
|
-#endif
|
|
|
|
goto Failed;
|
|
|
|
} else {
|
|
|
|
grantpt(fd); /* change slave permissions */
|
2018-11-07 21:37:56 +01:00
|
|
|
@@ -573,61 +525,6 @@
|
2018-09-10 00:42:26 +02:00
|
|
|
ptydev = ttydev = ptsname(fd); /* get slave's name */
|
|
|
|
goto Found;
|
|
|
|
}
|
|
|
|
- }
|
|
|
|
-#elif defined (_AIX)
|
|
|
|
- if ((fd = open("/dev/ptc", O_RDWR)) < 0)
|
|
|
|
- goto Failed;
|
|
|
|
- else
|
|
|
|
- ptydev = ttydev = ttyname(fd);
|
|
|
|
-#elif defined(ALL_NUMERIC_PTYS) /* SCO OSr5 */
|
|
|
|
- static char pty_name[] = "/dev/ptyp??\0\0\0";
|
|
|
|
- static char tty_name[] = "/dev/ttyp??\0\0\0";
|
|
|
|
- int len = strlen(tty_name);
|
|
|
|
- char *c1, *c2;
|
|
|
|
- int idx;
|
|
|
|
-
|
|
|
|
- ptydev = pty_name;
|
|
|
|
- ttydev = tty_name;
|
|
|
|
-
|
|
|
|
- for (idx = 0; idx < 256; idx++) {
|
|
|
|
- sprintf(ptydev, "%s%d", "/dev/ptyp", idx);
|
|
|
|
- sprintf(ttydev, "%s%d", "/dev/ttyp", idx);
|
|
|
|
-
|
|
|
|
- if (access(ttydev, F_OK) < 0) {
|
|
|
|
- idx = 256;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- if ((fd = open(ptydev, O_RDWR)) >= 0) {
|
|
|
|
- if (access(ttydev, R_OK | W_OK) == 0)
|
|
|
|
- goto Found;
|
|
|
|
- close(fd);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- goto Failed;
|
|
|
|
-#else
|
|
|
|
- static char pty_name[] = "/dev/pty??";
|
|
|
|
- static char tty_name[] = "/dev/tty??";
|
|
|
|
- int len = strlen(tty_name);
|
|
|
|
- char *c1, *c2;
|
|
|
|
-
|
|
|
|
- ptydev = pty_name;
|
|
|
|
- ttydev = tty_name;
|
|
|
|
-
|
|
|
|
-# define PTYCHAR1 "pqrstuvwxyz"
|
|
|
|
-# define PTYCHAR2 "0123456789abcdefghijklmnopqrstuvwxyz"
|
|
|
|
- for (c1 = PTYCHAR1; *c1; c1++) {
|
|
|
|
- ptydev[len - 2] = ttydev[len - 2] = *c1;
|
|
|
|
- for (c2 = PTYCHAR2; *c2; c2++) {
|
|
|
|
- ptydev[len - 1] = ttydev[len - 1] = *c2;
|
|
|
|
- if ((fd = open(ptydev, O_RDWR)) >= 0) {
|
|
|
|
- if (access(ttydev, R_OK | W_OK) == 0)
|
|
|
|
- goto Found;
|
|
|
|
- close(fd);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- goto Failed;
|
|
|
|
-#endif
|
|
|
|
|
|
|
|
Found:
|
|
|
|
fcntl(fd, F_SETFL, O_NDELAY);
|