The only limit was in the command parser.
Tested with FIleZilla Client and wget -c ftp:

Index: ftpcmd.y
===================================================================
RCS file: /cvs/src/libexec/ftpd/ftpcmd.y,v
retrieving revision 1.55
diff -u -p -u -r1.55 ftpcmd.y
--- ftpcmd.y    27 Nov 2013 21:25:25 -0000      1.55
+++ ftpcmd.y    27 Dec 2013 11:47:43 -0000
@@ -96,7 +96,7 @@ char  *fromname;
 %}
 
 %union {
-       int     i;
+       off_t   i;
        char   *s;
 }
 
@@ -663,7 +663,7 @@ rcmd
                                        free(fromname);
                                        fromname = NULL;
                                }
-                               restart_point = $4;     /* XXX $4 is only "int" 
*/
+                               restart_point = $4;
                                reply(350, "Restarting at %qd. %s",
                                    restart_point,
                                    "Send STORE or RETRIEVE to initiate 
transfer.");
@@ -1318,7 +1318,7 @@ yylex()
                                        ;
                                c = cbuf[cpos];
                                cbuf[cpos] = '\0';
-                               yylval.i = atoi(cp);
+                               yylval.i = atoll(cp);
                                cbuf[cpos] = c;
                                state = STR1;
                                return (NUMBER);
@@ -1333,7 +1333,7 @@ yylex()
                                        ;
                                c = cbuf[cpos];
                                cbuf[cpos] = '\0';
-                               yylval.i = atoi(cp);
+                               yylval.i = atoll(cp);
                                cbuf[cpos] = c;
                                return (NUMBER);
                        }

Reply via email to