See:
	https://issues.apache.org/bugzilla/show_bug.cgi?id=51412

--- modules/ftp/ftp_commands.c	2009-09-21 15:09:19.000000000 -0400
+++ modules/ftp/ftp_commands.c	2011-06-21 14:58:42.000000000 -0400
@@ -1676,4 +1676,5 @@
 {
     ftp_connection *fc = ftp_get_module_config(r->connection->conn_config);
+    long pbsz;
     char *endp;
 
@@ -1687,15 +1688,16 @@
     }
 
-    fc->pbsz = strtol(arg, &endp, 10);
+    pbsz = strtol(arg, &endp, 10);
     /*
      * Return 501 if we were unable to parse the argument or if there was a
      * possibility of an overflow
      */
-    if (((*arg == '\0') || (*endp != '\0')) || fc->pbsz < 0
-        || fc->pbsz == LONG_MAX) {
+    if (((*arg == '\0') || (*endp != '\0')) || pbsz <= 0 || pbsz >= INT_MAX) {
         fc->response_notes = "Could not parse PBSZ argument";
         return FTP_REPLY_SYNTAX_ERROR;
     }
 
+    fc->pbsz = pbsz;
+
     fc->response_notes = apr_psprintf(r->pool, "PBSZ Command OK. "
                                       "Protection buffer size set to %d",
