Applied lxs's changes to make ftpd safe for systems where
authorTheodore Tso <tytso@mit.edu>
Sat, 14 Feb 1998 03:24:40 +0000 (03:24 +0000)
committerTheodore Tso <tytso@mit.edu>
Sat, 14 Feb 1998 03:24:40 +0000 (03:24 +0000)
sizeof(off_t) > sizeof(int).

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10456 dc483132-0cff-0310-8789-dd5450dbe970

src/appl/gssftp/ftpd/ChangeLog
src/appl/gssftp/ftpd/ftpd.c

index 5794fc728f0fbff079755ed19efc2e8eca667df2..a635851faed67fa1fcd6d358179bf3e0f3d7e68f 100644 (file)
@@ -1,3 +1,8 @@
+Fri Feb 13 22:23:34 1998  Theodore Y. Ts'o  <tytso@mit.edu>
+
+       * ftpd.c: Applied lxs's changes to make ftpd safe for systems
+               where sizeof(off_t) > sizeof(int).
+
 Fri Feb 13 15:31:46 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in (thisconfigdir), configure.in: Point the
index d3d78552212749884eb4312dcd64ae5b3c5869fb..68668faae2968299f590b577a254000c8f2fa420 100644 (file)
@@ -204,7 +204,18 @@ int        swaitmax = SWAITMAX;
 int    swaitint = SWAITINT;
 
 void   lostconn(), myoob();
-FILE   *getdatasock(), *dataconn();
+FILE   *getdatasock(); 
+#if defined(__STDC__)
+/* 
+ * The following prototypes must be ANSI for systems for which
+ * sizeof(off_t) > sizeof(int) to prevent stack overflow problems 
+ */
+FILE   *dataconn(char *name, off_t size, char *mode);
+void   send_data(FILE *instr, FILE *outstr, off_t blksize);
+#else
+void   send_data();
+FILE   *dataconn();
+#endif
 
 #ifdef SETPROCTITLE
 char   **Argv = NULL;          /* pointer to argument vector */
@@ -1052,7 +1063,8 @@ dataconn(name, size, mode)
        file_size = size;
        byte_count = 0;
        if (size != (off_t) -1)
-               (void) sprintf (sizebuf, " (%ld bytes)", size);
+               /* cast size to long in case sizeof(off_t) > sizeof(long) */
+               (void) sprintf (sizebuf, " (%ld bytes)", (long)size);
        else
                (void) strcpy(sizebuf, "");
        if (pdata >= 0) {
@@ -1142,7 +1154,7 @@ secure_error(fmt, p1, p2, p3, p4, p5)
  *
  * NB: Form isn't handled.
  */
-send_data(instr, outstr, blksize)
+void send_data(instr, outstr, blksize)
        FILE *instr, *outstr;
        off_t blksize;
 {