Blob Blame History Raw
diff -up vsftpd-2.0.7/postlogin.c.bind_denied vsftpd-2.0.7/postlogin.c
--- vsftpd-2.0.7/postlogin.c.bind_denied	2008-07-29 21:51:09.000000000 -0400
+++ vsftpd-2.0.7/postlogin.c	2008-09-08 23:39:28.000000000 -0400
@@ -574,7 +574,8 @@ handle_pasv(struct vsf_session* p_sess, 
         break;
       }
     }
-    if (vsf_sysutil_get_error() == kVSFSysUtilErrADDRINUSE)
+    if ( (vsf_sysutil_get_error() == kVSFSysUtilErrADDRINUSE) ||
+         (vsf_sysutil_get_error() == kVSFSysUtilErrEACCES) )
     {
       continue;
     }
diff -up vsftpd-2.0.7/sysutil.c.bind_denied vsftpd-2.0.7/sysutil.c
--- vsftpd-2.0.7/sysutil.c.bind_denied	2008-09-08 23:38:10.000000000 -0400
+++ vsftpd-2.0.7/sysutil.c	2008-09-08 23:38:10.000000000 -0400
@@ -1561,6 +1561,9 @@ vsf_sysutil_get_error(void)
     case EOPNOTSUPP:
       retval = kVSFSysUtilErrOPNOTSUPP;
       break;
+    case EACCES:
+      retval = kVSFSysUtilErrEACCES;
+      break;
   }
   return retval;
 }
diff -up vsftpd-2.0.7/sysutil.h.bind_denied vsftpd-2.0.7/sysutil.h
--- vsftpd-2.0.7/sysutil.h.bind_denied	2008-09-08 23:38:10.000000000 -0400
+++ vsftpd-2.0.7/sysutil.h	2008-09-08 23:38:10.000000000 -0400
@@ -16,7 +16,8 @@ enum EVSFSysUtilError
   kVSFSysUtilErrNOSYS,
   kVSFSysUtilErrINTR,
   kVSFSysUtilErrINVAL,
-  kVSFSysUtilErrOPNOTSUPP
+  kVSFSysUtilErrOPNOTSUPP,
+  kVSFSysUtilErrEACCES
 };
 enum EVSFSysUtilError vsf_sysutil_get_error(void);