--- freem/src/mumps.c 2025/04/15 16:49:36 1.22
+++ freem/src/mumps.c 2025/04/16 17:36:12 1.26
@@ -1,5 +1,5 @@
/*
- * $Id: mumps.c,v 1.22 2025/04/15 16:49:36 snw Exp $
+ * $Id: mumps.c,v 1.26 2025/04/16 17:36:12 snw Exp $
* main module of freem
*
*
@@ -24,6 +24,18 @@
* along with FreeM. If not, see .
*
* $Log: mumps.c,v $
+ * Revision 1.26 2025/04/16 17:36:12 snw
+ * Add FreeBSD shm cleanup script
+ *
+ * Revision 1.25 2025/04/16 05:57:42 snw
+ * Remove non-useful procctl calls
+ *
+ * Revision 1.24 2025/04/16 05:37:06 snw
+ * Refine FreeBSD ASLR fix
+ *
+ * Revision 1.23 2025/04/16 05:33:15 snw
+ * Try to use procctl function to fix ASLR problem on FreeBSD
+ *
* Revision 1.22 2025/04/15 16:49:36 snw
* Make use of logprintf throughout codebase
*
@@ -116,7 +128,6 @@
#include
#include
#include "log.h"
-
#if defined(HAVE_GETOPT_H)
# include
#endif
@@ -210,7 +221,6 @@ int main (int argc, char **argv, char **
strcpy (stack0, argv[0]);
stcnv_c2m (stack0);
-
/* strncpy (config_file, SYSCONFDIR"/freem.conf", 100); */
@@ -587,14 +597,18 @@ int main (int argc, char **argv, char **
}
}
+ logprintf (FM_LOG_INFO, "environment: privilege shedding complete");
+
}
else {
logprintf (FM_LOG_INFO, "environment: not running as superuser; not shedding privileges");
}
+ logprintf (FM_LOG_INFO, "environment: reopening stdin, stdout, and stderr");
freopen ("/dev/null", "r", stdin);
freopen ("/dev/null", "w+", stdout);
freopen ("/dev/null", "w+", stderr);
+ logprintf (FM_LOG_INFO, "environment: stdin, stdout, and stderr reopened");
run_daemon = TRUE;
nofork = FALSE;
@@ -608,6 +622,7 @@ int main (int argc, char **argv, char **
snprintf (pid_file_path, PATH_MAX - 1, "%s/freem/run/%s.pid", LOCALSTATEDIR, shm_env);
+ logprintf (FM_LOG_INFO, "environment: opening pid file %s", pid_file_path);
pid_fd = open (pid_file_path, O_RDWR | O_CREAT, 0640);
errsav = errno;
@@ -621,6 +636,7 @@ int main (int argc, char **argv, char **
}
sprintf (pidfile_buf, "%ld\n", (long) getpid ());
+ logprintf (FM_LOG_INFO, "environment: writing pid file");
write (pid_fd, pidfile_buf, strlen (pidfile_buf));
}
@@ -749,7 +765,7 @@ int main (int argc, char **argv, char **
else {
fm_initialized = TRUE;
}
- }
+ }
if (first_process == TRUE) {