package dspam
tags 385353 + pending fixed-upstream
thanks

Hi,

A patch was sent on the upstream mailing-list:
http://thread.gmane.org/gmane.mail.qmail.simscan/3301/focus=3327

This code is already applied in the 3.8.0 release.

Cheers,
Julien
--- dspam-3.6.8~/src/dspamc.c       2006-05-13 21:47:30.000000000 +0930
+++ dspam-3.6.8/src/dspamc.c        2007-06-15 13:30:34.000000000 +0930
@@ -95,12 +95,19 @@
 int
 main (int argc, char *argv[])
 {
-  AGENT_CTX ATX;
+  AGENT_CTX ATX;                /* agent configuration */
+  buffer *message = NULL;       /* input message */
+  int agent_init = 0;           /* agent is initialized */
+  int driver_init = 0;          /* storage driver is initialized */
   int exitcode = EXIT_SUCCESS;
-  buffer *message = NULL;       /* input Message */
-  int agent_init = 0;          /* agent is initialized */
+  struct nt_node *node_nt;
+  struct nt_c c_nt;
+  struct passwd *pwent;
+
+  srand ((long) time << (long) getpid ());
+  umask (006);                  /* rw-rw---- */
+  setbuf (stdout, NULL);        /* unbuffered output */

-  setbuf (stdout, NULL);       /* unbuffered output */
#ifdef DEBUG
   DO_DEBUG = 0;
 #endif
@@ -113,6 +120,17 @@
   exit(EXIT_FAILURE);
 #endif

+  /* Cache my username and uid for trusted user security */
+
+  pwent = getpwuid(getuid());
+  if (pwent == NULL) {
+    LOG(LOG_ERR, ERR_AGENT_RUNTIME_USER);
+    exitcode = EXIT_FAILURE;
+    goto BAIL;
+  }
+  __pw_name = strdup(pwent->pw_name);
+  __pw_uid  = pwent->pw_uid;
+
   /* Read dspam.conf into global config structure (ds_config_t) */

   agent_config = read_config(NULL);

Reply via email to