42 lines
1.5 KiB
Plaintext
42 lines
1.5 KiB
Plaintext
$OpenBSD: patch-main_asterisk_c,v 1.14 2010/06/18 22:10:44 sthen Exp $
|
|
|
|
from upstream ticket #17076; don't chgrp /var/run/asterisk
|
|
unless it was automatically created
|
|
|
|
|
|
--- main/asterisk.c.orig Tue Jun 1 16:20:14 2010
|
|
+++ main/asterisk.c Wed Jun 9 15:03:29 2010
|
|
@@ -3130,7 +3130,7 @@ int main(int argc, char *argv[])
|
|
FILE *f;
|
|
sigset_t sigs;
|
|
int num;
|
|
- int isroot = 1;
|
|
+ int isroot = 1, rundir_exists = 0;
|
|
char *buf;
|
|
const char *runuser = NULL, *rungroup = NULL;
|
|
char *remotesock = NULL;
|
|
@@ -3330,8 +3330,12 @@ int main(int argc, char *argv[])
|
|
|
|
/* It's common on some platforms to clear /var/run at boot. Create the
|
|
* socket file directory before we drop privileges. */
|
|
- if (mkdir(ast_config_AST_RUN_DIR, 0755) && errno != EEXIST) {
|
|
- ast_log(LOG_WARNING, "Unable to create socket file directory. Remote consoles will not be able to connect! (%s)\n", strerror(x));
|
|
+ if (mkdir(ast_config_AST_RUN_DIR, 0755)) {
|
|
+ if (errno == EEXIST) {
|
|
+ rundir_exists = 1;
|
|
+ } else {
|
|
+ ast_log(LOG_WARNING, "Unable to create socket file directory. Remote consoles will not be able to connect! (%s)\n", strerror(x));
|
|
+ }
|
|
}
|
|
|
|
#ifndef __CYGWIN__
|
|
@@ -3347,7 +3351,7 @@ int main(int argc, char *argv[])
|
|
ast_log(LOG_WARNING, "No such group '%s'!\n", rungroup);
|
|
exit(1);
|
|
}
|
|
- if (chown(ast_config_AST_RUN_DIR, -1, gr->gr_gid)) {
|
|
+ if (!rundir_exists && chown(ast_config_AST_RUN_DIR, -1, gr->gr_gid)) {
|
|
ast_log(LOG_WARNING, "Unable to chgrp run directory to %d (%s)\n", (int) gr->gr_gid, rungroup);
|
|
}
|
|
if (setgid(gr->gr_gid)) {
|