summaryrefslogtreecommitdiff
blob: 6931ea26c3b596182618edd95cb6a11e0720fd1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# HG changeset patch
# User Todd C. Miller <Todd.Miller@sudo.ws>
# Date 1573059314 25200
# Node ID f85ff5ee2caf19cefca67ae49c1d6048d61125cb
# Parent  5cdcfd9a6c33a157a12f1b1893e397c3198b206b
Do not warn about a missing /etc/environment file on Linux without PAM.
Bug #907

diff -r 5cdcfd9a6c33 -r f85ff5ee2caf plugins/sudoers/env.c
--- a/plugins/sudoers/env.c	Tue Nov 05 15:18:34 2019 -0700
+++ b/plugins/sudoers/env.c	Wed Nov 06 09:55:14 2019 -0700
@@ -940,7 +940,8 @@
 #endif /* HAVE_LOGIN_CAP_H */
 #if defined(_AIX) || (defined(__linux__) && !defined(HAVE_PAM))
 	    /* Insert system-wide environment variables. */
-	    read_env_file(_PATH_ENVIRONMENT, true, false);
+	    if (!read_env_file(_PATH_ENVIRONMENT, true, false))
+		sudo_warn("%s", _PATH_ENVIRONMENT);
 #endif
 	    for (ep = env.envp; *ep; ep++)
 		env_update_didvar(*ep, &didvar);
@@ -1218,8 +1219,10 @@
     efl = calloc(1, sizeof(*efl));
     if (efl != NULL) {
 	if ((efl->fp = fopen(path, "r")) == NULL) {
-	    free(efl);
-	    efl = NULL;
+	    if (errno != ENOENT) {
+		free(efl);
+		efl = NULL;
+	    }
 	}
     }
     debug_return_ptr(efl);
@@ -1259,6 +1262,9 @@
     debug_decl(env_file_next_local, SUDOERS_DEBUG_ENV)
 
     *errnum = 0;
+    if (efl->fp == NULL)
+	debug_return_ptr(NULL);
+
     for (;;) {
 	if (sudo_parseln(&efl->line, &efl->linesize, NULL, efl->fp, PARSELN_CONT_IGN) == -1) {
 	    if (!feof(efl->fp))