termux-packages/packages/at/at-3.2.1_at.c.patch

98 lines
2.6 KiB
Diff

diff -uNr at-3.2.1/at.c at-3.2.1.mod/at.c
--- at-3.2.1/at.c 2019-08-04 15:16:16.000000000 +0300
+++ at-3.2.1.mod/at.c 2020-01-02 20:33:14.106959504 +0200
@@ -81,6 +81,11 @@
#include "posixtm.h"
#include "privs.h"
+#ifdef PIDFILE
+#undef PIDFILE
+#define PIDFILE "@TERMUX_PREFIX@/var/run/atd.pid"
+#endif
+
/* Macros */
#ifndef ATJOB_MX
@@ -151,9 +156,9 @@
We need the unprivileged uid here since the file is owned by the real
(not effective) uid.
*/
- setregid(real_gid, effective_gid);
+// setregid(real_gid, effective_gid);
unlink(atfile);
- setregid(effective_gid, real_gid);
+// setregid(effective_gid, real_gid);
/*
PRIV_END
*/
@@ -389,7 +394,7 @@
perr("Cannot open input file %.500s", atinput);
}
- fprintf(fp, "#!/bin/sh\n# atrun uid=%d gid=%d\n# mail %s %d\n",
+ fprintf(fp, "#!@TERMUX_PREFIX@/bin/sh\n# atrun uid=%d gid=%d\n# mail %s %d\n",
real_uid, real_gid, mailname, send_mail);
/* Write out the umask at the time of invocation
@@ -694,7 +699,7 @@
We need the unprivileged uid here since the file is owned by the real
(not effective) uid.
*/
- setregid(real_gid, effective_gid);
+ //setregid(real_gid, effective_gid);
if (queue == '=') {
fprintf(stderr, "Warning: deleting running job\n");
@@ -704,7 +709,7 @@
rc = EXIT_FAILURE;
}
- setregid(effective_gid, real_gid);
+ //setregid(effective_gid, real_gid);
done = 1;
break;
@@ -714,7 +719,7 @@
FILE *fp;
int ch;
- setregid(real_gid, effective_gid);
+ //setregid(real_gid, effective_gid);
fp = fopen(dirent->d_name, "r");
if (fp) {
@@ -727,7 +732,7 @@
perr("Cannot open %.500s", dirent->d_name);
rc = EXIT_FAILURE;
}
- setregid(effective_gid, real_gid);
+ //setregid(effective_gid, real_gid);
}
break;
@@ -778,6 +783,7 @@
RELINQUISH_PRIVS
+#ifndef __ANDROID__
if ((pwe = getpwnam(DAEMON_USERNAME)) == NULL)
perr("Cannot get uid for " DAEMON_USERNAME);
@@ -787,6 +793,7 @@
perr("Cannot get gid for " DAEMON_GROUPNAME);
daemon_gid = ge->gr_gid;
+#endif
/* Eat any leading paths
*/
@@ -969,7 +976,7 @@
It also alows a warning diagnostic to be printed. Because of the
possible variance, we always output the diagnostic. */
- fprintf(stderr, "warning: commands will be executed using /bin/sh\n");
+ fprintf(stderr, "warning: commands will be executed using @TERMUX_PREFIX@/bin/sh\n");
writefile(timer, queue);
break;