|
|
d2e1ce4 |
From 82cd789df0f022eb6f3d28646e7a61d1d0715805 Mon Sep 17 00:00:00 2001
|
|
|
d2e1ce4 |
From: Michal Sekletar <msekleta@redhat.com>
|
|
|
d2e1ce4 |
Date: Mon, 7 Apr 2014 12:23:36 +0200
|
|
|
d2e1ce4 |
Subject: [PATCH 12/27] pppd: we don't want to accidentally leak fds
|
|
|
d2e1ce4 |
|
|
|
d2e1ce4 |
---
|
|
|
d2e1ce4 |
pppd/auth.c | 20 ++++++++++----------
|
|
|
d2e1ce4 |
pppd/options.c | 2 +-
|
|
|
d2e1ce4 |
pppd/sys-linux.c | 4 ++--
|
|
|
d2e1ce4 |
3 files changed, 13 insertions(+), 13 deletions(-)
|
|
|
d2e1ce4 |
|
|
|
d2e1ce4 |
diff --git a/pppd/auth.c b/pppd/auth.c
|
|
|
d2e1ce4 |
index 4271af6..9e957fa 100644
|
|
|
d2e1ce4 |
--- a/pppd/auth.c
|
|
|
d2e1ce4 |
+++ b/pppd/auth.c
|
|
|
d2e1ce4 |
@@ -428,7 +428,7 @@ setupapfile(argv)
|
|
|
6d73752 |
free(fname);
|
|
|
d2e1ce4 |
return 0;
|
|
|
d2e1ce4 |
}
|
|
|
d2e1ce4 |
- ufile = fopen(fname, "r");
|
|
|
d2e1ce4 |
+ ufile = fopen(fname, "re");
|
|
|
d2e1ce4 |
if (seteuid(euid) == -1)
|
|
|
d2e1ce4 |
fatal("unable to regain privileges: %m");
|
|
|
d2e1ce4 |
if (ufile == NULL) {
|
|
|
d2e1ce4 |
@@ -1413,7 +1413,7 @@ check_passwd(unit, auser, userlen, apasswd, passwdlen, msg)
|
|
|
d2e1ce4 |
filename = _PATH_UPAPFILE;
|
|
|
d2e1ce4 |
addrs = opts = NULL;
|
|
|
d2e1ce4 |
ret = UPAP_AUTHNAK;
|
|
|
d2e1ce4 |
- f = fopen(filename, "r");
|
|
|
d2e1ce4 |
+ f = fopen(filename, "re");
|
|
|
d2e1ce4 |
if (f == NULL) {
|
|
|
d2e1ce4 |
error("Can't open PAP password file %s: %m", filename);
|
|
|
d2e1ce4 |
|
|
|
d2e1ce4 |
@@ -1512,7 +1512,7 @@ null_login(unit)
|
|
|
d2e1ce4 |
if (ret <= 0) {
|
|
|
d2e1ce4 |
filename = _PATH_UPAPFILE;
|
|
|
d2e1ce4 |
addrs = NULL;
|
|
|
d2e1ce4 |
- f = fopen(filename, "r");
|
|
|
d2e1ce4 |
+ f = fopen(filename, "re");
|
|
|
d2e1ce4 |
if (f == NULL)
|
|
|
d2e1ce4 |
return 0;
|
|
|
d2e1ce4 |
check_access(f, filename);
|
|
|
d2e1ce4 |
@@ -1559,7 +1559,7 @@ get_pap_passwd(passwd)
|
|
|
d2e1ce4 |
}
|
|
|
d2e1ce4 |
|
|
|
d2e1ce4 |
filename = _PATH_UPAPFILE;
|
|
|
d2e1ce4 |
- f = fopen(filename, "r");
|
|
|
d2e1ce4 |
+ f = fopen(filename, "re");
|
|
|
d2e1ce4 |
if (f == NULL)
|
|
|
d2e1ce4 |
return 0;
|
|
|
d2e1ce4 |
check_access(f, filename);
|
|
|
d2e1ce4 |
@@ -1597,7 +1597,7 @@ have_pap_secret(lacks_ipp)
|
|
|
d2e1ce4 |
}
|
|
|
d2e1ce4 |
|
|
|
d2e1ce4 |
filename = _PATH_UPAPFILE;
|
|
|
d2e1ce4 |
- f = fopen(filename, "r");
|
|
|
d2e1ce4 |
+ f = fopen(filename, "re");
|
|
|
d2e1ce4 |
if (f == NULL)
|
|
|
d2e1ce4 |
return 0;
|
|
|
d2e1ce4 |
|
|
|
d2e1ce4 |
@@ -1642,7 +1642,7 @@ have_chap_secret(client, server, need_ip, lacks_ipp)
|
|
|
d2e1ce4 |
}
|
|
|
d2e1ce4 |
|
|
|
d2e1ce4 |
filename = _PATH_CHAPFILE;
|
|
|
d2e1ce4 |
- f = fopen(filename, "r");
|
|
|
d2e1ce4 |
+ f = fopen(filename, "re");
|
|
|
d2e1ce4 |
if (f == NULL)
|
|
|
d2e1ce4 |
return 0;
|
|
|
d2e1ce4 |
|
|
|
d2e1ce4 |
@@ -1684,7 +1684,7 @@ have_srp_secret(client, server, need_ip, lacks_ipp)
|
|
|
d2e1ce4 |
struct wordlist *addrs;
|
|
|
d2e1ce4 |
|
|
|
d2e1ce4 |
filename = _PATH_SRPFILE;
|
|
|
d2e1ce4 |
- f = fopen(filename, "r");
|
|
|
d2e1ce4 |
+ f = fopen(filename, "re");
|
|
|
d2e1ce4 |
if (f == NULL)
|
|
|
d2e1ce4 |
return 0;
|
|
|
d2e1ce4 |
|
|
|
d2e1ce4 |
@@ -1740,7 +1740,7 @@ get_secret(unit, client, server, secret, secret_len, am_server)
|
|
|
d2e1ce4 |
addrs = NULL;
|
|
|
d2e1ce4 |
secbuf[0] = 0;
|
|
|
d2e1ce4 |
|
|
|
d2e1ce4 |
- f = fopen(filename, "r");
|
|
|
d2e1ce4 |
+ f = fopen(filename, "re");
|
|
|
d2e1ce4 |
if (f == NULL) {
|
|
|
d2e1ce4 |
error("Can't open chap secret file %s: %m", filename);
|
|
|
d2e1ce4 |
return 0;
|
|
|
d2e1ce4 |
@@ -1797,7 +1797,7 @@ get_srp_secret(unit, client, server, secret, am_server)
|
|
|
d2e1ce4 |
filename = _PATH_SRPFILE;
|
|
|
d2e1ce4 |
addrs = NULL;
|
|
|
d2e1ce4 |
|
|
|
d2e1ce4 |
- fp = fopen(filename, "r");
|
|
|
d2e1ce4 |
+ fp = fopen(filename, "re");
|
|
|
d2e1ce4 |
if (fp == NULL) {
|
|
|
d2e1ce4 |
error("Can't open srp secret file %s: %m", filename);
|
|
|
d2e1ce4 |
return 0;
|
|
|
d2e1ce4 |
@@ -2203,7 +2203,7 @@ scan_authfile(f, client, server, secret, addrs, opts, filename, flags)
|
|
|
d2e1ce4 |
*/
|
|
|
d2e1ce4 |
if (word[0] == '@' && word[1] == '/') {
|
|
|
d2e1ce4 |
strlcpy(atfile, word+1, sizeof(atfile));
|
|
|
d2e1ce4 |
- if ((sf = fopen(atfile, "r")) == NULL) {
|
|
|
d2e1ce4 |
+ if ((sf = fopen(atfile, "re")) == NULL) {
|
|
|
d2e1ce4 |
warn("can't open indirect secret file %s", atfile);
|
|
|
d2e1ce4 |
continue;
|
|
|
d2e1ce4 |
}
|
|
|
d2e1ce4 |
diff --git a/pppd/options.c b/pppd/options.c
|
|
|
d2e1ce4 |
index 45fa742..1d754ae 100644
|
|
|
d2e1ce4 |
--- a/pppd/options.c
|
|
|
d2e1ce4 |
+++ b/pppd/options.c
|
|
|
d2e1ce4 |
@@ -427,7 +427,7 @@ options_from_file(filename, must_exist, check_prot, priv)
|
|
|
d2e1ce4 |
option_error("unable to drop privileges to open %s: %m", filename);
|
|
|
d2e1ce4 |
return 0;
|
|
|
d2e1ce4 |
}
|
|
|
d2e1ce4 |
- f = fopen(filename, "r");
|
|
|
d2e1ce4 |
+ f = fopen(filename, "re");
|
|
|
d2e1ce4 |
err = errno;
|
|
|
d2e1ce4 |
if (check_prot && seteuid(euid) == -1)
|
|
|
d2e1ce4 |
fatal("unable to regain privileges");
|
|
|
d2e1ce4 |
diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
|
|
|
d2e1ce4 |
index 72a7727..8a12fa0 100644
|
|
|
d2e1ce4 |
--- a/pppd/sys-linux.c
|
|
|
d2e1ce4 |
+++ b/pppd/sys-linux.c
|
|
|
d2e1ce4 |
@@ -1412,7 +1412,7 @@ static char *path_to_procfs(const char *tail)
|
|
|
d2e1ce4 |
/* Default the mount location of /proc */
|
|
|
d2e1ce4 |
strlcpy (proc_path, "/proc", sizeof(proc_path));
|
|
|
d2e1ce4 |
proc_path_len = 5;
|
|
|
d2e1ce4 |
- fp = fopen(MOUNTED, "r");
|
|
|
d2e1ce4 |
+ fp = fopen(MOUNTED, "re");
|
|
|
d2e1ce4 |
if (fp != NULL) {
|
|
|
d2e1ce4 |
while ((mntent = getmntent(fp)) != NULL) {
|
|
|
d2e1ce4 |
if (strcmp(mntent->mnt_type, MNTTYPE_IGNORE) == 0)
|
|
|
d2e1ce4 |
@@ -1472,7 +1472,7 @@ static int open_route_table (void)
|
|
|
d2e1ce4 |
close_route_table();
|
|
|
d2e1ce4 |
|
|
|
d2e1ce4 |
path = path_to_procfs("/net/route");
|
|
|
d2e1ce4 |
- route_fd = fopen (path, "r");
|
|
|
d2e1ce4 |
+ route_fd = fopen (path, "re");
|
|
|
d2e1ce4 |
if (route_fd == NULL) {
|
|
|
d2e1ce4 |
error("can't open routing table %s: %m", path);
|
|
|
d2e1ce4 |
return 0;
|
|
|
d2e1ce4 |
--
|
|
|
d2e1ce4 |
1.8.3.1
|
|
|
d2e1ce4 |
|