32 lines
1.2 KiB
Diff
32 lines
1.2 KiB
Diff
|
|
Index: tcp_wrappers_7.6/safe_finger.c
|
||
|
|
===================================================================
|
||
|
|
--- tcp_wrappers_7.6.orig/safe_finger.c
|
||
|
|
+++ tcp_wrappers_7.6/safe_finger.c
|
||
|
|
@@ -32,12 +32,10 @@ static char sccsid[] = "@(#) safe_finger
|
||
|
|
|
||
|
|
/* Local stuff */
|
||
|
|
|
||
|
|
-char path[] = "PATH=/bin:/usr/bin:/usr/sbin";
|
||
|
|
-
|
||
|
|
#define TIME_LIMIT 60 /* Do not keep listinging forever */
|
||
|
|
#define INPUT_LENGTH 100000 /* Do not keep listinging forever */
|
||
|
|
#define LINE_LENGTH 128 /* Editors can choke on long lines */
|
||
|
|
-#define FINGER_PROGRAM "finger" /* Most, if not all, UNIX systems */
|
||
|
|
+#define FINGER_PROGRAM "/usr/bin/finger" /* Most, if not all, UNIX systems */
|
||
|
|
#define UNPRIV_NAME "nobody" /* Preferred privilege level */
|
||
|
|
#define UNPRIV_UGID 32767 /* Default uid and gid */
|
||
|
|
|
||
|
|
@@ -76,9 +74,9 @@ int main(int argc, char **argv)
|
||
|
|
/*
|
||
|
|
* Redirect our standard input through the raw finger command.
|
||
|
|
*/
|
||
|
|
- if (putenv(path)) {
|
||
|
|
- fprintf(stderr, "%s: putenv: out of memory", argv[0]);
|
||
|
|
- exit(1);
|
||
|
|
+ if (access(FINGER_PROGRAM, X_OK) != 0) {
|
||
|
|
+ printf("Can not execute " FINGER_PROGRAM ". Please install 'finger' package.\n");
|
||
|
|
+ return 1;
|
||
|
|
}
|
||
|
|
argv[0] = FINGER_PROGRAM;
|
||
|
|
finger_pid = pipe_stdin(argv);
|