Hello..
My domains are located somewhere else then ~vpopmail/domains/somedomain.com
(each system user has his own domains/ directory in his homedir).

Since vpopmaild doesn't allow a server admin to use the 
read_file/list_dir/write_file ... functions for those domains, I wrote a 
small patch.

Imho a serveradmin account should be able to access ALL domains handled by 
vpopmail, so I think this patch should get included in the next release.

Patch is for vpopmail-5.4.18


-- 
Best Regards
---------------------------------------------------------------------------
Justin Heesemann                                        ionium Technologies
[EMAIL PROTECTED]                                                www.ionium.org
*** vpopmaild.old.c	2006-12-17 07:53:39.000000000 +0100
--- vpopmaild.c	2007-02-15 13:51:51.000000000 +0100
*************** int validate_path(char *newpath, char *p
*** 1239,1244 ****
--- 1239,1245 ----
      return(2);
    }
  
+   int valid_domain_path = 0;
    /* expand the path */
    if ( path[0] == '/' ) {
      snprintf(newpath, MAXPATH, path);
*************** int validate_path(char *newpath, char *p
*** 1300,1310 ****
        } 
        snprintf(newpath, MAXPATH, thedir);
        strncat(newpath, &path[i], MAXPATH );
      }
    }
  
    if ( AuthVpw.pw_gid & SA_ADMIN ) { 
!     if ( strncmp(TheVpopmailDomains, newpath, strlen(TheVpopmailDomains))!=0 ) {
        snprintf(WriteBuf,sizeof(WriteBuf), 
          RET_ERR "1510 unauthorized directory" RET_CRLF);
        return(10);
--- 1301,1312 ----
        } 
        snprintf(newpath, MAXPATH, thedir);
        strncat(newpath, &path[i], MAXPATH );
+       valid_domain_path = 1;
      }
    }
  
    if ( AuthVpw.pw_gid & SA_ADMIN ) { 
!     if ( valid_domain_path == 0 && strncmp(TheVpopmailDomains, newpath, strlen(TheVpopmailDomains))!=0 ) {
        snprintf(WriteBuf,sizeof(WriteBuf), 
          RET_ERR "1510 unauthorized directory" RET_CRLF);
        return(10);

Reply via email to