Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > e16d0c94ff2c9e93ba4eea60f7b68478 > files > 27

krb5-1.6.1-70.el5_9.2.src.rpm

Fix sending of large files.  This isn't *quite* right, because we still have to
open the file right to avoid EFBIG errors, and this patch doesn't fix that.
Either we build with -D_FILE_OFFSET_BITS=64, change open() to open64(), or
pass O_LARGEFILE to open(), none of which are easy to automate.

--- krb5-1.3.3/src/appl/bsd/krcp.c	2004-04-15 00:40:00.000000000 -0400
+++ krb5-1.3.3/src/appl/bsd/krcp.c	2004-04-15 00:55:38.000000000 -0400
@@ -819,8 +819,13 @@
 		continue;
 	    }
 	}
+#ifdef HAVE_LONG_LONG
+	(void) sprintf(buf, "C%04o %lld %s\n",
+		       (int) stb.st_mode&07777, (long long) stb.st_size, last);
+#else
 	(void) sprintf(buf, "C%04o %ld %s\n",
 		       (int) stb.st_mode&07777, (long ) stb.st_size, last);
+#endif
 	(void) rcmd_stream_write(rem, buf, strlen(buf), 0);
 	if (response() < 0) {
 	    (void) close(f);
--- krb5-1.3.3/src/appl/bsd/v4rcp.c	2004-04-15 00:40:28.000000000 -0400
+++ krb5-1.3.3/src/appl/bsd/v4rcp.c	2004-04-15 00:46:57.000000000 -0400
@@ -538,8 +538,13 @@
 				continue;
 			}
 		}
+#ifdef HAVE_LONG_LONG
+		(void) sprintf(buf, "C%04o %lld %s\n",
+		    (unsigned int) stb.st_mode&07777, (long long) stb.st_size, last);
+#else
 		(void) sprintf(buf, "C%04o %ld %s\n",
 		    (unsigned int) stb.st_mode&07777, (long) stb.st_size, last);
+#endif
 		kstream_write (krem, buf, strlen (buf));
 		if (response() < 0) {
 			(void) close(f);
--- krb5-1.3.3/src/appl/bsd/configure.in	2004-04-15 00:52:22.000000000 -0400
+++ krb5-1.3.3/src/appl/bsd/configure.in	2004-04-15 00:52:16.000000000 -0400
@@ -77,6 +77,7 @@
 AC_TYPE_MODE_T
 AC_CHECK_FUNCS(isatty inet_aton getenv gettosbyname killpg initgroups setpriority setreuid setresuid waitpid setsid ptsname setlogin tcgetpgrp tcsetpgrp setpgid strsave utimes rmufile rresvport_af)
 AC_CHECK_HEADERS(unistd.h stdlib.h string.h sys/filio.h sys/sockio.h sys/label.h sys/tty.h ttyent.h lastlog.h sys/select.h sys/ptyvar.h utmp.h sys/time.h krb4-proto.h sys/ioctl_compat.h paths.h arpa/nameser.h)
+AC_CHECK_TYPES([long long])
 AC_HEADER_STDARG
 AC_REPLACE_FUNCS(getdtablesize)
 dnl