X-Git-Url: https://git.saurik.com/apple/syslog.git/blobdiff_plain/f3df4c032d7a59379e2d8e1a5cf8a8f0e9ea9f63..4865c03e306b8431c4e88a88772ec2c11580fc22:/syslogd.tproj/syslogd.c?ds=sidebyside diff --git a/syslogd.tproj/syslogd.c b/syslogd.tproj/syslogd.c index 6d69769..e929e9d 100644 --- a/syslogd.tproj/syslogd.c +++ b/syslogd.tproj/syslogd.c @@ -50,6 +50,8 @@ #include #include #include +#include + #if !TARGET_OS_IPHONE #include #endif @@ -447,10 +449,11 @@ int main(int argc, const char *argv[]) { int32_t i; + uint64_t master_val; #if !TARGET_IPHONE_SIMULATOR int network_change_token; #endif - int quota_file_token, asl_db_token; + int quota_file_token, asl_db_token, master_token; char tstr[32], *notify_key; time_t now; int first_syslogd_start = 1; @@ -489,9 +492,18 @@ main(int argc, const char *argv[]) * guilty of this in the past, creating them with owner root. */ - asl_secure_chown_chmod_dir("/private/var/mobile/Library/Logs", 501, 501, 0755); - asl_secure_chown_chmod_dir("/private/var/mobile/Library/Logs/CrashReporter", 501, 501, 0755); - asl_secure_chown_chmod_dir("/private/var/mobile/Library/Logs/CrashReporter/DiagnosticLogs", 501, 501, 0755); + uid_t __mUserUID = 501; + gid_t __mUserGID = 501; + struct passwd * pw = getpwnam("mobile"); + + if (pw) { + __mUserUID = pw->pw_uid; + __mUserGID = pw->pw_gid; + } + + asl_secure_chown_chmod_dir("/private/var/mobile/Library/Logs", __mUserUID, __mUserGID, 0755); + asl_secure_chown_chmod_dir("/private/var/mobile/Library/Logs/CrashReporter", __mUserUID, __mUserGID, 0755); + asl_secure_chown_chmod_dir("/private/var/mobile/Library/Logs/CrashReporter/DiagnosticLogs", __mUserUID, __mUserGID, 0755); #endif /* Set I/O policy */ @@ -650,6 +662,11 @@ main(int argc, const char *argv[]) */ write_boot_log(first_syslogd_start); + /* default NOTIFY_SYSTEM_MASTER settings */ + master_val = 0x0; + notify_register_plain(NOTIFY_SYSTEM_MASTER, &master_token); + notify_set_state(master_token, master_val); + asldebug("reading launch plist\n"); launch_config();