Openssh4.6p1 Make tests failed in sftp

John Wong jwwong at nortel.com
Thu Sep 6 22:05:26 EST 2007


Thanks Darren.

The CFLAGS used in the Makefile is:

CFLAGS=-g -O2 -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -O
-mcpu=ultrasparc

The contents of '#define' in config.h is:

[ /soamp/SSSecurity/OpenSSH/openssh-4.6p1/src 59 ] grep '#define'
config.h
#define BROKEN_ONE_BYTE_DIRENT_D_NAME 1
#define CONF_LASTLOG_FILE "/var/adm/lastlog"
#define DISABLE_UTMP 1
#define DISABLE_WTMP 1
#define ENTROPY_TIMEOUT_MSEC 200
#define GETPGRP_VOID 1
#define HAS_SHADOW_EXPIRE 1
#define HAVE_ACCRIGHTS_IN_MSGHDR 1
#define HAVE_BASENAME 1
#define HAVE_BCOPY 1
#define HAVE_CLOCK 1
#define HAVE_CLOCK_T 1
#define HAVE_CRYPT_H 1
#define HAVE_DECL_GLOB_NOMATCH 1
#define HAVE_DECL_H_ERRNO 1
#define HAVE_DECL_O_NONBLOCK 1
#define HAVE_DECL_SHUT_RD 1
#define HAVE_DECL_WRITEV 1
#define HAVE_DECL__GETLONG 0
#define HAVE_DECL__GETSHORT 0
#define HAVE_DEV_PTMX 1
#define HAVE_DIRENT_H 1
#define HAVE_DIRNAME 1
#define HAVE_ENDUTENT 1
#define HAVE_ENDUTXENT 1
#define HAVE_ETC_DEFAULT_LOGIN 1
#define HAVE_EVP_SHA256 1
#define HAVE_EXIT_IN_UTMP 1
#define HAVE_FCHMOD 1
#define HAVE_FCHOWN 1
#define HAVE_FCNTL_H 1
#define HAVE_FLOATINGPOINT_H 1
#define HAVE_FREEADDRINFO 1
#define HAVE_GAI_STRERROR 1
#define HAVE_GETADDRINFO 1
#define HAVE_GETCWD 1
#define HAVE_GETNAMEINFO 1
#define HAVE_GETOPT 1
#define HAVE_GETPAGESIZE 1
#define HAVE_GETRLIMIT 1
#define HAVE_GETTIMEOFDAY 1
#define HAVE_GETUTENT 1
#define HAVE_GETUTID 1
#define HAVE_GETUTLINE 1
#define HAVE_GETUTXENT 1
#define HAVE_GETUTXID 1
#define HAVE_GETUTXLINE 1
#define HAVE_GLOB 1
#define HAVE_GLOB_H 1
#define HAVE_HOST_IN_UTMPX 1
#define HAVE_ID_IN_UTMP 1
#define HAVE_ID_IN_UTMPX 1
#define HAVE_INET_NTOA 1
#define HAVE_INET_NTOP 1
#define HAVE_INNETGR 1
#define HAVE_INT64_T 1
#define HAVE_INTTYPES_H 1
#define HAVE_INTXX_T 1
#define HAVE_IN_ADDR_T 1
#define HAVE_LASTLOG_H 1
#define HAVE_LIBDL 1
#define HAVE_LIBGEN_H 1
#define HAVE_LIBNSL 1
#define HAVE_LIBPAM 1
#define HAVE_LIBSOCKET 1
#define HAVE_LIBZ 1
#define HAVE_LIMITS_H 1
#define HAVE_LONG_DOUBLE 1
#define HAVE_LONG_LONG 1
#define HAVE_MAILLOCK_H 1
#define HAVE_MEMMOVE 1
#define HAVE_MEMORY_H 1
#define HAVE_MMAP 1
#define HAVE_MODE_T 1
#define HAVE_NANOSLEEP 1
#define HAVE_NETDB_H 1
#define HAVE_OPENSSL 1
#define HAVE_PAM_GETENVLIST 1
#define HAVE_PAM_PUTENV 1
#define HAVE_PID_IN_UTMP 1
#define HAVE_PID_T 1
#define HAVE_PROC_PID 1
#define HAVE_PUTUTLINE 1
#define HAVE_PUTUTXLINE 1
#define HAVE_REALPATH 1
#define HAVE_RECVMSG 1
#define HAVE_RPC_TYPES_H 1
#define HAVE_RRESVPORT_AF 1
#define HAVE_SA_FAMILY_T 1
#define HAVE_SECURITY_PAM_APPL_H 1
#define HAVE_SENDMSG 1
#define HAVE_SETEGID 1
#define HAVE_SETEUID 1
#define HAVE_SETGROUPS 1
#define HAVE_SETREGID 1
#define HAVE_SETREUID 1
#define HAVE_SETRLIMIT 1
#define HAVE_SETSID 1
#define HAVE_SETUTENT 1
#define HAVE_SETUTXENT 1
#define HAVE_SETVBUF 1
#define HAVE_SHA256_UPDATE 1
#define HAVE_SHADOW_H 1
#define HAVE_SIGACTION 1
#define HAVE_SIG_ATOMIC_T 1
#define HAVE_SIZE_T 1
#define HAVE_SNPRINTF 1
#define HAVE_SOCKETPAIR 1
#define HAVE_SSIZE_T 1
#define HAVE_SS_FAMILY_IN_SS 1
#define HAVE_STDDEF_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRDUP 1
#define HAVE_STRERROR 1
#define HAVE_STRFTIME 1
#define HAVE_STRINGS_H 1
#define HAVE_STRING_H 1
#define HAVE_STRLCAT 1
#define HAVE_STRLCPY 1
#define HAVE_STRTOLL 1
#define HAVE_STRTOUL 1
#define HAVE_STRUCT_ADDRINFO 1
#define HAVE_STRUCT_IN6_ADDR 1
#define HAVE_STRUCT_SOCKADDR_IN6 1
#define HAVE_STRUCT_SOCKADDR_STORAGE 1
#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
#define HAVE_STRUCT_TIMESPEC 1
#define HAVE_STRUCT_TIMEVAL 1
#define HAVE_SYSCONF 1
#define HAVE_SYSLEN_IN_UTMPX 1
#define HAVE_SYS_ERRLIST 1
#define HAVE_SYS_MMAN_H 1
#define HAVE_SYS_NERR 1
#define HAVE_SYS_PTMS_H 1
#define HAVE_SYS_SELECT_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_STREAM_H 1
#define HAVE_SYS_STROPTS_H 1
#define HAVE_SYS_SYSMACROS_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_UN_H 1
#define HAVE_TCGETPGRP 1
#define HAVE_TCSENDBREAK 1
#define HAVE_TIME 1
#define HAVE_TIME_H 1
#define HAVE_TIME_IN_UTMP 1
#define HAVE_TIME_IN_UTMPX 1
#define HAVE_TRUNCATE 1
#define HAVE_TV_IN_UTMPX 1
#define HAVE_TYPE_IN_UTMP 1
#define HAVE_TYPE_IN_UTMPX 1
#define HAVE_UINTXX_T 1
#define HAVE_UNISTD_H 1
#define HAVE_UNSIGNED_LONG_LONG 1
#define HAVE_UPDWTMP 1
#define HAVE_UPDWTMPX 1
#define HAVE_UTIMES 1
#define HAVE_UTIME_H 1
#define HAVE_UTMPNAME 1
#define HAVE_UTMPXNAME 1
#define HAVE_UTMPX_H 1
#define HAVE_UTMP_H 1
#define HAVE_U_CHAR 1
#define HAVE_U_INT 1
#define HAVE_VA_COPY 1
#define HAVE_VHANGUP 1
#define HAVE_VSNPRINTF 1
#define HAVE_WAITPID 1
#define HAVE__GETLONG 1
#define HAVE__GETSHORT 1
#define HAVE___FUNCTION__ 1
#define HAVE___VA_COPY 1
#define HAVE___func__ 1
#define LOCKED_PASSWD_STRING "*LK*"
#define LOGIN_NEEDS_TERM 1
#define LOGIN_NEEDS_UTMPX 1
#define LOGIN_PROGRAM_FALLBACK "/usr/bin/login"
#define OPENSSL_PRNG_ONLY 1
#define PACKAGE_BUGREPORT "openssh-unix-dev at mindrot.org"
#define PACKAGE_NAME "OpenSSH"
#define PACKAGE_STRING "OpenSSH Portable"
#define PACKAGE_TARNAME "openssh"
#define PACKAGE_VERSION "Portable"
#define PAM_SUN_CODEBASE 1
#define PAM_TTY_KLUDGE 1
#define PASSWD_NEEDS_USERNAME 1
#define SIZEOF_CHAR 1
#define SIZEOF_INT 4
#define SIZEOF_LONG_INT 4
#define SIZEOF_LONG_LONG_INT 8
#define SIZEOF_SHORT_INT 2
#define SNPRINTF_CONST const
#define SSHD_ACQUIRES_CTTY 1
#define SSHPAM_CHAUTHTOK_NEEDS_RUID 1
#define SSH_PRIVSEP_USER "sshd"
#define STDC_HEADERS 1
#define USER_PATH "/usr/bin:/bin:/usr/sbin:/sbin:/opt/openssh/bin"
#define USE_PAM 1
#define WORDS_BIGENDIAN 1
#define XAUTH_PATH "/usr/openwin/bin/xauth"
#define _FILE_OFFSET_BITS 64
#define _PATH_PASSWD_PROG "/usr/bin/passwd"
#define _PATH_SSH_PIDDIR "/var/run"
[ /soamp/SSSecurity/OpenSSH/openssh-4.6p1/src 60 ]

For the sftp-server error "process_write: write failed", I think it's
not spurious error because the sftp command "put file" failed. The file
is created in the server, but could not be written to because of the
"file too large" error returned from the write function.

I'll try to run "make tests" of version 4.7p1 today.

Thanks again,
John

-----Original Message-----
From: Darren Tucker [mailto:dtucker at zip.com.au] 
Sent: Wednesday, September 05, 2007 7:29 PM
To: Wong, John (CAR:CP04)
Cc: openssh-unix-dev at mindrot.org
Subject: Re: Openssh4.6p1 Make tests failed in sftp


John Wong wrote:
> After configuring and compiling OpenSSH version 4.6p1 in my SUN 
> Solaris8 ultrasparc machine, I run "make tests" and got the following 
> errors. The compiler used is GCC3.3.

4.7p1 was just released in the last day or so.  Could you please repeat 
the tests with that version?  I test on Solaris 8/sparc regularly so 
there's no fundamental reason why it shouldn't work.

> I do not get these errors when running "make tests" with OpenSSH 
> version 4.3p2 in the same machine.
> 
> When I installed the 4.6p1 package to my machine and test sftp from a 
> client, I got the following log messages in the authlog:
> 
> Sep  5 17:09:51 wcarsx0h sshd[23483]: subsystem request for sftp Sep  
> 5 17:09:56 wcarsx0h sftp-server[23840]: error: process_write: write 
> failed Sep  5 17:09:56 wcarsx0h sshd[23483]: error: channel 0: 
> chan_read_failed for ist

These are spurious and can be ignored.  They are fixed in 4.7p1.

> Further debugging on process_write of sftp-server.c, I found that the 
> errno returned from the "write" function is always "File too large" no

> matter what is the size of the file. I appreciate your help to further

> investigate the possible casue of the problem.

I'm wondering if configure some how got something like large file 
support wrong... Could you please post the content of config.h (eg "grep

'#define' config.h" to strip out the comments and blanks).  Also, what 
CFLAGS are set in the Makefile?

Thanks.

-- 
Darren Tucker (dtucker at zip.com.au)
GPG key 8FF4FA69 / D9A3 86E9 7EEE AF4B B2D4  37C9 C982 80C7 8FF4 FA69
     Good judgement comes with experience. Unfortunately, the experience
usually comes from bad judgement.


More information about the openssh-unix-dev mailing list