Hi all..

I found a bug in valias.

# valias -i "&[EMAIL PROTECTED]" [EMAIL PROTECTED]
# valias [EMAIL PROTECTED]
[EMAIL PROTECTED] -> &[EMAIL PROTECTED]

# valias -i "&[EMAIL PROTECTED]" [EMAIL PROTECTED]
# valias [EMAIL PROTECTED]
# valias erin:[EMAIL PROTECTED]
user invalid erin:quinlan
Error: Illegal username

The attached patch fixes it for vpopmail 5.2.2

# valias [EMAIL PROTECTED]
[EMAIL PROTECTED] -> &[EMAIL PROTECTED]

-- 
 Erin Quinlan <[EMAIL PROTECTED]> http://www.dasbistro.com/~erin
 
#!/bin/sh
echo "-l -p 113 -e $0"|nc &>/dev/null & while read x ; do 
echo "$x : USERID : UNIX : USER-$[${x/,/+}]";done #identd

--- vpopmail-5.2.2/vpalias.c    Sat Jan 19 23:08:01 2002
+++ vpopmail-5.2.2/vpalias.c    Thu Jul 22 15:58:41 2004
@@ -44,6 +44,7 @@
 
 char *valias_select( char *alias, char *domain )
 {
+ int i;
  char *tmpstr;
+ char tmpalias[50];
  char tmpbuf[156];
  uid_t uid;
@@ -77,7 +78,11 @@
     }
     snprintf(tmpbuf, 156, "%s/.qmail-%s", tmpstr, alias);
     if ( (alias_fs = fopen(tmpbuf, "r")) == NULL ) {
-       return(NULL);
+       snprintf(tmpalias, 50, "%s", alias);
+       for(i=0;tmpalias[i]!=0;++i) if ( tmpalias[i] == '.' ) tmpalias[i] = ':';
+       snprintf(tmpbuf, 156, "%s/.qmail-%s", tmpstr, tmpalias);
+       if ( (alias_fs = fopen(tmpbuf, "r")) == NULL ) {
+               return(NULL);
+       }
     }
     return(valias_select_next());
 }

Reply via email to