Compare commits

..

4 Commits
0.41 ... 0.41.1

Author SHA1 Message Date
William Hubbs
8d6370d469 version 0.41.1 2019-02-23 18:06:00 -06:00
William Hubbs
75ce3addd2 update ChangeLog 2019-02-23 18:03:28 -06:00
William Hubbs
d818be6e2b librc: fix potential buffer overflow in pid_is_argv
This fixes #299.
2019-02-23 18:00:08 -06:00
William Hubbs
b812524303 Revert "src/librc/librc-daemon.c: fix buffer overrun in pid_is_argv"
This reverts commit 084877eb52.
The mentioned commit caused some systems to have some services reported
as crashed.

This fixes #297.
This fixes #298.
2019-02-23 18:00:08 -06:00
3 changed files with 43 additions and 51 deletions

View File

@@ -1,3 +1,30 @@
commit d818be6e2bc00c790f6f4aeb2670f007951b2ab3
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
librc: fix potential buffer overflow in pid_is_argv
This fixes #299.
commit b812524303ae42bf7f61a642c45e8be39aa222e5
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Revert "src/librc/librc-daemon.c: fix buffer overrun in pid_is_argv"
This reverts commit 084877eb52971faf8f52c780ddd08ed9af140eb6.
The mentioned commit caused some systems to have some services reported
as crashed.
This fixes #297.
This fixes #298.
commit 56c006ebd68d572e303c01c38291a1f5f4fc1c30
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Update ChangeLog
commit 067088bbff42ca2fb9106acf309f1d9ce3e78ada
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -1443,32 +1470,3 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
The default path provided by the system if one isn't set only includes
"/bin:/usr/bin". This adds the default path setting from sysvinit.
commit 16ff3cd8df6169f73e3d7cf00758a4703f62cbf0
Author: Christian Brauner <christian.brauner@ubuntu.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
check whether /sys/fs/cgroup is a mountpoint
The current check only tries to detect whether /sys/fs/cgroup exists and
whether it is writable or not. But when the init system doesn't mount
cgroups then /sys/fs/cgroup will just be an empty directory. When paired
with unprivileged containers that mount sysfs this will cause misleading
errors to be printed since /sys/fs/cgroup will be owned by user
nobody:nogroup in this case. Independent of this specific problem this
check will also be misleading when the /sys/fs/cgroup exists and is in
fact writable by the init system but isn't actually a mountpoint.
Note from William. "grep -qs" doesn't need to redirect output to
/dev/null since it is completely silent.
This fixes #209.
commit 38032626a6c2f8e869197999f32ac3634667cc86
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
improve cgroup configuration checks
make the base/controller functions return successfully if cgroups v1/v2
are not configured in the kernel

View File

@@ -1,3 +1,3 @@
NAME= openrc
VERSION= 0.41
VERSION= 0.41.1
PKG= ${NAME}-${VERSION}

View File

@@ -48,40 +48,34 @@ pid_is_exec(pid_t pid, const char *exec)
static bool
pid_is_argv(pid_t pid, const char *const *argv)
{
char *buffer = NULL;
char *cmdline = NULL;
int fd;
char buffer[PATH_MAX];
char *p;
size_t bytes;
bool rc;
ssize_t bytes;
xasprintf(&cmdline, "/proc/%u/cmdline", pid);
if (!rc_getfile(cmdline, &buffer, &bytes)) {
if ((fd = open(cmdline, O_RDONLY)) < 0) {
free(cmdline);
return false;
}
bytes = read(fd, buffer, sizeof(buffer) - 1);
close(fd);
free(cmdline);
if (bytes <= 0) {
if (buffer)
free(buffer);
if (bytes == -1)
return false;
}
p = buffer;
rc = true;
while (*argv) {
if (strcmp(*argv, p) != 0) {
rc = false;
break;
}
buffer[bytes] = '\0';
p = buffer;
while (*argv) {
if (strcmp(*argv, p) != 0)
return false;
argv++;
p += strlen(p) + 1;
if ((unsigned)(p - buffer) >= bytes) {
rc = false;
break;
}
if ((unsigned)(p - buffer) > sizeof(buffer))
return false;
}
free(buffer);
return rc;
return true;
}
RC_PIDLIST *