diff options
author | Damien Miller <djm@mindrot.org> | 2019-07-08 13:38:39 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2019-07-08 13:38:39 +1000 |
commit | 4efe1adf05ee5d3fce44320fcff68735891f4ee6 (patch) | |
tree | 49b902aab121cc5c7c3b8dd166556036fee4c175 | |
parent | 696fb4298e80f2ebcd188986a91b49af3b7ca14c (diff) |
remove realpath() compat replacement
We shipped a BSD implementation of realpath() because sftp-server
depended on its behaviour.
OpenBSD is now moving to a more strictly POSIX-compliant realpath(2),
so sftp-server now unconditionally requires its own BSD-style realpath
implementation. As such, there is no need to carry another independant
implementation in openbsd-compat.
ok dtucker@
-rw-r--r-- | .depend | 4 | ||||
-rw-r--r-- | Makefile.in | 2 | ||||
-rw-r--r-- | configure.ac | 28 | ||||
-rw-r--r-- | defines.h | 4 | ||||
-rw-r--r-- | openbsd-compat/Makefile.in | 1 | ||||
-rw-r--r-- | openbsd-compat/openbsd-compat.h | 12 | ||||
-rw-r--r-- | openbsd-compat/realpath.c | 229 |
7 files changed, 3 insertions, 277 deletions
@@ -63,7 +63,7 @@ kex.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h | |||
63 | kex.o: misc.h monitor.h ssherr.h sshbuf.h digest.h | 63 | kex.o: misc.h monitor.h ssherr.h sshbuf.h digest.h |
64 | kexc25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshkey.h kex.h mac.h crypto_api.h sshbuf.h digest.h ssherr.h ssh2.h | 64 | kexc25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshkey.h kex.h mac.h crypto_api.h sshbuf.h digest.h ssherr.h ssh2.h |
65 | kexdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 65 | kexdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
66 | kexecdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 66 | kexecdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshkey.h kex.h mac.h crypto_api.h ssherr.h |
67 | kexgen.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshkey.h kex.h mac.h crypto_api.h log.h packet.h openbsd-compat/sys-queue.h dispatch.h ssh2.h sshbuf.h digest.h ssherr.h | 67 | kexgen.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshkey.h kex.h mac.h crypto_api.h log.h packet.h openbsd-compat/sys-queue.h dispatch.h ssh2.h sshbuf.h digest.h ssherr.h |
68 | kexgex.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 68 | kexgex.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
69 | kexgexc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 69 | kexgexc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
@@ -151,7 +151,7 @@ sshd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h | |||
151 | sshd.o: cipher-aesctr.h rijndael.h digest.h sshkey.h kex.h mac.h crypto_api.h myproposal.h authfile.h pathnames.h atomicio.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h authfd.h msg.h channels.h session.h monitor.h monitor_wrap.h ssh-sandbox.h auth-options.h version.h ssherr.h | 151 | sshd.o: cipher-aesctr.h rijndael.h digest.h sshkey.h kex.h mac.h crypto_api.h myproposal.h authfile.h pathnames.h atomicio.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h authfd.h msg.h channels.h session.h monitor.h monitor_wrap.h ssh-sandbox.h auth-options.h version.h ssherr.h |
152 | ssherr.o: ssherr.h | 152 | ssherr.o: ssherr.h |
153 | sshkey-xmss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 153 | sshkey-xmss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
154 | sshkey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h ssh2.h ssherr.h misc.h sshbuf.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h sshkey.h sshkey-xmss.h match.h xmss_fast.h openbsd-compat/openssl-compat.h | 154 | sshkey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h ssh2.h ssherr.h misc.h sshbuf.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h sshkey.h match.h openbsd-compat/openssl-compat.h |
155 | sshlogin.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshlogin.h ssherr.h loginrec.h log.h sshbuf.h misc.h servconf.h | 155 | sshlogin.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshlogin.h ssherr.h loginrec.h log.h sshbuf.h misc.h servconf.h |
156 | sshpty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshpty.h log.h misc.h | 156 | sshpty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshpty.h log.h misc.h |
157 | sshtty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshpty.h | 157 | sshtty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshpty.h |
diff --git a/Makefile.in b/Makefile.in index 6abb60fd0..8b6754a68 100644 --- a/Makefile.in +++ b/Makefile.in | |||
@@ -197,7 +197,7 @@ ssh-keyscan$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keyscan.o | |||
197 | $(LD) -o $@ ssh-keyscan.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) | 197 | $(LD) -o $@ ssh-keyscan.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) |
198 | 198 | ||
199 | sftp-server$(EXEEXT): $(LIBCOMPAT) libssh.a sftp.o sftp-common.o sftp-server.o sftp-realpath.o sftp-server-main.o | 199 | sftp-server$(EXEEXT): $(LIBCOMPAT) libssh.a sftp.o sftp-common.o sftp-server.o sftp-realpath.o sftp-server-main.o |
200 | $(LD) -o $@ sftp-server.o sftp-common.o sftp-server-main.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) | 200 | $(LD) -o $@ sftp-server.o sftp-common.o sftp-realpath.o sftp-server-main.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) |
201 | 201 | ||
202 | sftp$(EXEEXT): $(LIBCOMPAT) libssh.a sftp.o sftp-client.o sftp-common.o sftp-glob.o progressmeter.o | 202 | sftp$(EXEEXT): $(LIBCOMPAT) libssh.a sftp.o sftp-client.o sftp-common.o sftp-glob.o progressmeter.o |
203 | $(LD) -o $@ progressmeter.o sftp.o sftp-client.o sftp-common.o sftp-glob.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(LIBEDIT) | 203 | $(LD) -o $@ progressmeter.o sftp.o sftp-client.o sftp-common.o sftp-glob.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(LIBEDIT) |
diff --git a/configure.ac b/configure.ac index 23f4de7ef..532bdee83 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -588,7 +588,6 @@ case "$host" in | |||
588 | #include <fcntl.h> ] | 588 | #include <fcntl.h> ] |
589 | ) | 589 | ) |
590 | check_for_aix_broken_getaddrinfo=1 | 590 | check_for_aix_broken_getaddrinfo=1 |
591 | AC_DEFINE([BROKEN_REALPATH], [1], [Define if you have a broken realpath.]) | ||
592 | AC_DEFINE([SETEUID_BREAKS_SETUID], [1], | 591 | AC_DEFINE([SETEUID_BREAKS_SETUID], [1], |
593 | [Define if your platform breaks doing a seteuid before a setuid]) | 592 | [Define if your platform breaks doing a seteuid before a setuid]) |
594 | AC_DEFINE([BROKEN_SETREUID], [1], [Define if your setreuid() is broken]) | 593 | AC_DEFINE([BROKEN_SETREUID], [1], [Define if your setreuid() is broken]) |
@@ -948,7 +947,6 @@ mips-sony-bsd|mips-sony-newsos4) | |||
948 | conf_wtmp_location=/usr/adm/wtmp | 947 | conf_wtmp_location=/usr/adm/wtmp |
949 | maildir=/usr/spool/mail | 948 | maildir=/usr/spool/mail |
950 | AC_DEFINE([HAVE_NEXT], [1], [Define if you are on NeXT]) | 949 | AC_DEFINE([HAVE_NEXT], [1], [Define if you are on NeXT]) |
951 | AC_DEFINE([BROKEN_REALPATH]) | ||
952 | AC_DEFINE([USE_PIPES]) | 950 | AC_DEFINE([USE_PIPES]) |
953 | AC_DEFINE([BROKEN_SAVED_UIDS], [1], [Needed for NeXT]) | 951 | AC_DEFINE([BROKEN_SAVED_UIDS], [1], [Needed for NeXT]) |
954 | ;; | 952 | ;; |
@@ -2024,32 +2022,6 @@ AC_CHECK_FUNCS([setresgid], [ | |||
2024 | ) | 2022 | ) |
2025 | ]) | 2023 | ]) |
2026 | 2024 | ||
2027 | AC_CHECK_FUNCS([realpath], [ | ||
2028 | dnl the sftp v3 spec says SSH_FXP_REALPATH will "canonicalize any given | ||
2029 | dnl path name", however some implementations of realpath (and some | ||
2030 | dnl versions of the POSIX spec) do not work on non-existent files, | ||
2031 | dnl so we use the OpenBSD implementation on those platforms. | ||
2032 | AC_MSG_CHECKING([if realpath works with non-existent files]) | ||
2033 | AC_RUN_IFELSE( | ||
2034 | [AC_LANG_PROGRAM([[ | ||
2035 | #include <limits.h> | ||
2036 | #include <stdlib.h> | ||
2037 | #include <errno.h> | ||
2038 | ]], [[ | ||
2039 | char buf[PATH_MAX]; | ||
2040 | if (realpath("/opensshnonexistentfilename1234", buf) == NULL) | ||
2041 | if (errno == ENOENT) | ||
2042 | exit(1); | ||
2043 | exit(0); | ||
2044 | ]])], | ||
2045 | [AC_MSG_RESULT([yes])], | ||
2046 | [AC_DEFINE([BROKEN_REALPATH], [1], | ||
2047 | [realpath does not work with nonexistent files]) | ||
2048 | AC_MSG_RESULT([no])], | ||
2049 | [AC_MSG_WARN([cross compiling: assuming working])] | ||
2050 | ) | ||
2051 | ]) | ||
2052 | |||
2053 | AC_MSG_CHECKING([for working fflush(NULL)]) | 2025 | AC_MSG_CHECKING([for working fflush(NULL)]) |
2054 | AC_RUN_IFELSE( | 2026 | AC_RUN_IFELSE( |
2055 | [AC_LANG_PROGRAM([[#include <stdio.h>]], [[fflush(NULL); exit(0);]])], | 2027 | [AC_LANG_PROGRAM([[#include <stdio.h>]], [[fflush(NULL); exit(0);]])], |
@@ -108,10 +108,6 @@ enum | |||
108 | # define MAXPATHLEN PATH_MAX | 108 | # define MAXPATHLEN PATH_MAX |
109 | # else /* PATH_MAX */ | 109 | # else /* PATH_MAX */ |
110 | # define MAXPATHLEN 64 | 110 | # define MAXPATHLEN 64 |
111 | /* realpath uses a fixed buffer of size MAXPATHLEN, so force use of ours */ | ||
112 | # ifndef BROKEN_REALPATH | ||
113 | # define BROKEN_REALPATH 1 | ||
114 | # endif /* BROKEN_REALPATH */ | ||
115 | # endif /* PATH_MAX */ | 111 | # endif /* PATH_MAX */ |
116 | #endif /* MAXPATHLEN */ | 112 | #endif /* MAXPATHLEN */ |
117 | 113 | ||
diff --git a/openbsd-compat/Makefile.in b/openbsd-compat/Makefile.in index c1e14cbd0..2cc343636 100644 --- a/openbsd-compat/Makefile.in +++ b/openbsd-compat/Makefile.in | |||
@@ -38,7 +38,6 @@ OPENBSD=base64.o \ | |||
38 | pwcache.o \ | 38 | pwcache.o \ |
39 | readpassphrase.o \ | 39 | readpassphrase.o \ |
40 | reallocarray.o \ | 40 | reallocarray.o \ |
41 | realpath.o \ | ||
42 | recallocarray.o \ | 41 | recallocarray.o \ |
43 | rmd160.o \ | 42 | rmd160.o \ |
44 | rresvport.o \ | 43 | rresvport.o \ |
diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index f58646886..86d45317b 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h | |||
@@ -81,18 +81,6 @@ void *reallocarray(void *, size_t, size_t); | |||
81 | void *recallocarray(void *, size_t, size_t, size_t); | 81 | void *recallocarray(void *, size_t, size_t, size_t); |
82 | #endif | 82 | #endif |
83 | 83 | ||
84 | #if !defined(HAVE_REALPATH) || defined(BROKEN_REALPATH) | ||
85 | /* | ||
86 | * glibc's FORTIFY_SOURCE can redefine this and prevent us picking up the | ||
87 | * compat version. | ||
88 | */ | ||
89 | # ifdef BROKEN_REALPATH | ||
90 | # define realpath(x, y) _ssh_compat_realpath(x, y) | ||
91 | # endif | ||
92 | |||
93 | char *realpath(const char *path, char *resolved); | ||
94 | #endif | ||
95 | |||
96 | #ifndef HAVE_RRESVPORT_AF | 84 | #ifndef HAVE_RRESVPORT_AF |
97 | int rresvport_af(int *alport, sa_family_t af); | 85 | int rresvport_af(int *alport, sa_family_t af); |
98 | #endif | 86 | #endif |
diff --git a/openbsd-compat/realpath.c b/openbsd-compat/realpath.c deleted file mode 100644 index a2f090e55..000000000 --- a/openbsd-compat/realpath.c +++ /dev/null | |||
@@ -1,229 +0,0 @@ | |||
1 | /* $OpenBSD: realpath.c,v 1.20 2015/10/13 20:55:37 millert Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2003 Constantin S. Svintsoff <kostik@iclub.nsu.ru> | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions | ||
7 | * are met: | ||
8 | * 1. Redistributions of source code must retain the above copyright | ||
9 | * notice, this list of conditions and the following disclaimer. | ||
10 | * 2. Redistributions in binary form must reproduce the above copyright | ||
11 | * notice, this list of conditions and the following disclaimer in the | ||
12 | * documentation and/or other materials provided with the distribution. | ||
13 | * 3. The names of the authors may not be used to endorse or promote | ||
14 | * products derived from this software without specific prior written | ||
15 | * permission. | ||
16 | * | ||
17 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
20 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
21 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
22 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
23 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
24 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
25 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
26 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
27 | * SUCH DAMAGE. | ||
28 | */ | ||
29 | |||
30 | /* OPENBSD ORIGINAL: lib/libc/stdlib/realpath.c */ | ||
31 | |||
32 | #include "includes.h" | ||
33 | |||
34 | #if !defined(HAVE_REALPATH) || defined(BROKEN_REALPATH) | ||
35 | |||
36 | #include <sys/types.h> | ||
37 | #include <sys/param.h> | ||
38 | #include <sys/stat.h> | ||
39 | |||
40 | #include <errno.h> | ||
41 | #include <stdlib.h> | ||
42 | #include <stddef.h> | ||
43 | #include <string.h> | ||
44 | #include <unistd.h> | ||
45 | #include <limits.h> | ||
46 | |||
47 | #ifndef SYMLOOP_MAX | ||
48 | # define SYMLOOP_MAX 32 | ||
49 | #endif | ||
50 | |||
51 | /* A slightly modified copy of this file exists in libexec/ld.so */ | ||
52 | |||
53 | /* | ||
54 | * char *realpath(const char *path, char resolved[PATH_MAX]); | ||
55 | * | ||
56 | * Find the real name of path, by removing all ".", ".." and symlink | ||
57 | * components. Returns (resolved) on success, or (NULL) on failure, | ||
58 | * in which case the path which caused trouble is left in (resolved). | ||
59 | */ | ||
60 | char * | ||
61 | realpath(const char *path, char *resolved) | ||
62 | { | ||
63 | struct stat sb; | ||
64 | char *p, *q, *s; | ||
65 | size_t left_len, resolved_len; | ||
66 | unsigned symlinks; | ||
67 | int serrno, slen, mem_allocated; | ||
68 | char left[PATH_MAX], next_token[PATH_MAX], symlink[PATH_MAX]; | ||
69 | |||
70 | if (path[0] == '\0') { | ||
71 | errno = ENOENT; | ||
72 | return (NULL); | ||
73 | } | ||
74 | |||
75 | serrno = errno; | ||
76 | |||
77 | if (resolved == NULL) { | ||
78 | resolved = malloc(PATH_MAX); | ||
79 | if (resolved == NULL) | ||
80 | return (NULL); | ||
81 | mem_allocated = 1; | ||
82 | } else | ||
83 | mem_allocated = 0; | ||
84 | |||
85 | symlinks = 0; | ||
86 | if (path[0] == '/') { | ||
87 | resolved[0] = '/'; | ||
88 | resolved[1] = '\0'; | ||
89 | if (path[1] == '\0') | ||
90 | return (resolved); | ||
91 | resolved_len = 1; | ||
92 | left_len = strlcpy(left, path + 1, sizeof(left)); | ||
93 | } else { | ||
94 | if (getcwd(resolved, PATH_MAX) == NULL) { | ||
95 | if (mem_allocated) | ||
96 | free(resolved); | ||
97 | else | ||
98 | strlcpy(resolved, ".", PATH_MAX); | ||
99 | return (NULL); | ||
100 | } | ||
101 | resolved_len = strlen(resolved); | ||
102 | left_len = strlcpy(left, path, sizeof(left)); | ||
103 | } | ||
104 | if (left_len >= sizeof(left) || resolved_len >= PATH_MAX) { | ||
105 | errno = ENAMETOOLONG; | ||
106 | goto err; | ||
107 | } | ||
108 | |||
109 | /* | ||
110 | * Iterate over path components in `left'. | ||
111 | */ | ||
112 | while (left_len != 0) { | ||
113 | /* | ||
114 | * Extract the next path component and adjust `left' | ||
115 | * and its length. | ||
116 | */ | ||
117 | p = strchr(left, '/'); | ||
118 | s = p ? p : left + left_len; | ||
119 | if (s - left >= (ptrdiff_t)sizeof(next_token)) { | ||
120 | errno = ENAMETOOLONG; | ||
121 | goto err; | ||
122 | } | ||
123 | memcpy(next_token, left, s - left); | ||
124 | next_token[s - left] = '\0'; | ||
125 | left_len -= s - left; | ||
126 | if (p != NULL) | ||
127 | memmove(left, s + 1, left_len + 1); | ||
128 | if (resolved[resolved_len - 1] != '/') { | ||
129 | if (resolved_len + 1 >= PATH_MAX) { | ||
130 | errno = ENAMETOOLONG; | ||
131 | goto err; | ||
132 | } | ||
133 | resolved[resolved_len++] = '/'; | ||
134 | resolved[resolved_len] = '\0'; | ||
135 | } | ||
136 | if (next_token[0] == '\0') | ||
137 | continue; | ||
138 | else if (strcmp(next_token, ".") == 0) | ||
139 | continue; | ||
140 | else if (strcmp(next_token, "..") == 0) { | ||
141 | /* | ||
142 | * Strip the last path component except when we have | ||
143 | * single "/" | ||
144 | */ | ||
145 | if (resolved_len > 1) { | ||
146 | resolved[resolved_len - 1] = '\0'; | ||
147 | q = strrchr(resolved, '/') + 1; | ||
148 | *q = '\0'; | ||
149 | resolved_len = q - resolved; | ||
150 | } | ||
151 | continue; | ||
152 | } | ||
153 | |||
154 | /* | ||
155 | * Append the next path component and lstat() it. If | ||
156 | * lstat() fails we still can return successfully if | ||
157 | * there are no more path components left. | ||
158 | */ | ||
159 | resolved_len = strlcat(resolved, next_token, PATH_MAX); | ||
160 | if (resolved_len >= PATH_MAX) { | ||
161 | errno = ENAMETOOLONG; | ||
162 | goto err; | ||
163 | } | ||
164 | if (lstat(resolved, &sb) != 0) { | ||
165 | if (errno == ENOENT && p == NULL) { | ||
166 | errno = serrno; | ||
167 | return (resolved); | ||
168 | } | ||
169 | goto err; | ||
170 | } | ||
171 | if (S_ISLNK(sb.st_mode)) { | ||
172 | if (symlinks++ > SYMLOOP_MAX) { | ||
173 | errno = ELOOP; | ||
174 | goto err; | ||
175 | } | ||
176 | slen = readlink(resolved, symlink, sizeof(symlink) - 1); | ||
177 | if (slen < 0) | ||
178 | goto err; | ||
179 | symlink[slen] = '\0'; | ||
180 | if (symlink[0] == '/') { | ||
181 | resolved[1] = 0; | ||
182 | resolved_len = 1; | ||
183 | } else if (resolved_len > 1) { | ||
184 | /* Strip the last path component. */ | ||
185 | resolved[resolved_len - 1] = '\0'; | ||
186 | q = strrchr(resolved, '/') + 1; | ||
187 | *q = '\0'; | ||
188 | resolved_len = q - resolved; | ||
189 | } | ||
190 | |||
191 | /* | ||
192 | * If there are any path components left, then | ||
193 | * append them to symlink. The result is placed | ||
194 | * in `left'. | ||
195 | */ | ||
196 | if (p != NULL) { | ||
197 | if (symlink[slen - 1] != '/') { | ||
198 | if (slen + 1 >= | ||
199 | (ptrdiff_t)sizeof(symlink)) { | ||
200 | errno = ENAMETOOLONG; | ||
201 | goto err; | ||
202 | } | ||
203 | symlink[slen] = '/'; | ||
204 | symlink[slen + 1] = 0; | ||
205 | } | ||
206 | left_len = strlcat(symlink, left, sizeof(symlink)); | ||
207 | if (left_len >= sizeof(symlink)) { | ||
208 | errno = ENAMETOOLONG; | ||
209 | goto err; | ||
210 | } | ||
211 | } | ||
212 | left_len = strlcpy(left, symlink, sizeof(left)); | ||
213 | } | ||
214 | } | ||
215 | |||
216 | /* | ||
217 | * Remove trailing slash except when the resolved pathname | ||
218 | * is a single "/". | ||
219 | */ | ||
220 | if (resolved_len > 1 && resolved[resolved_len - 1] == '/') | ||
221 | resolved[resolved_len - 1] = '\0'; | ||
222 | return (resolved); | ||
223 | |||
224 | err: | ||
225 | if (mem_allocated) | ||
226 | free(resolved); | ||
227 | return (NULL); | ||
228 | } | ||
229 | #endif /* !defined(HAVE_REALPATH) || defined(BROKEN_REALPATH) */ | ||