]> granicus.if.org Git - php/commitdiff
We need mm file for each user.
authorYasuo Ohgaki <yohgaki@php.net>
Fri, 25 Jan 2002 20:59:24 +0000 (20:59 +0000)
committerYasuo Ohgaki <yohgaki@php.net>
Fri, 25 Jan 2002 20:59:24 +0000 (20:59 +0000)
# GCI/CLI SAPI need this. It might be better to disable mm save handler
# for CGI/CLI, though.

ext/session/mod_mm.c

index 40810cc7d2f64de2dd31330bee064600e246d210..296af9e77dc59224e1baa989c879ea42ca4f3636 100644 (file)
@@ -22,6 +22,7 @@
 
 #ifdef HAVE_LIBMM
 
+#include <unistd.h>
 #include <mm.h>
 #include <time.h>
 #include <sys/stat.h>
@@ -250,24 +251,27 @@ PHP_MINIT_FUNCTION(ps_mm)
 {
        int save_path_len = strlen(PS(save_path));
        int mod_name_len = strlen(sapi_module.name);
-       char *ps_mm_path;
+       char *ps_mm_path, euid[30];
        int ret;
 
        ps_mm_instance = calloc(sizeof(*ps_mm_instance), 1);
        if (!ps_mm_instance)
                return FAILURE;
-       
-       ps_mm_path = do_alloca(save_path_len + 1 + sizeof(PS_MM_FILE) + mod_name_len + 1); /* Directory + '/' + File + Module Name + \0 */
 
+       if (!sprintf(euid,"%d", geteuid())) 
+               return FAILURE;
+               
+    /* Directory + '/' + File + Module Name + Effective UID + \0 */    
+       ps_mm_path = do_alloca(save_path_len+1+sizeof(PS_MM_FILE)+mod_name_len+strlen(euid)+1);
+       
        memcpy(ps_mm_path, PS(save_path), save_path_len + 1);
-
        if (save_path_len > 0 && ps_mm_path[save_path_len - 1] != DEFAULT_SLASH) {
                ps_mm_path[save_path_len] = DEFAULT_SLASH;
                ps_mm_path[save_path_len+1] = '\0';
        }
-
        strcat(ps_mm_path, PS_MM_FILE);
        strcat(ps_mm_path, sapi_module.name);
+       strcat(ps_mm_path, euid);
        
        ret = ps_mm_initialize(ps_mm_instance, ps_mm_path);