Check if realpath works on nonexistent files.

On some platforms the native realpath doesn't work with non-existent
files (this is actually specified in some versions of POSIX), however
the sftp spec says its realpath with "canonicalize any given path name".
On those platforms, use realpath from the compat library.

In addition, when compiling with -DFORTIFY_SOURCE, glibc redefines
the realpath symbol to the checked version, so redefine ours to
something else so we pick up the compat version we want.

bz#2428, ok djm@
2 files changed
tree: cbe43672e70bc3fdcaf47c311dfabc8d282cacd5
  1. contrib/
  2. openbsd-compat/
  3. regress/
  4. scard/
  5. .cvsignore
  6. aclocal.m4
  7. addrmatch.c
  8. atomicio.c
  9. atomicio.h
  10. audit-bsm.c
  11. audit-linux.c
  12. audit.c
  13. audit.h
  14. auth-bsdauth.c
  15. auth-chall.c
  16. auth-krb5.c
  17. auth-options.c
  18. auth-options.h
  19. auth-pam.c
  20. auth-pam.h
  21. auth-passwd.c
  22. auth-rh-rsa.c
  23. auth-rhosts.c
  24. auth-rsa.c
  25. auth-shadow.c
  26. auth-sia.c
  27. auth-sia.h
  28. auth-skey.c
  29. auth.c
  30. auth.h
  31. auth1.c
  32. auth2-chall.c
  33. auth2-gss.c
  34. auth2-hostbased.c
  35. auth2-kbdint.c
  36. auth2-none.c
  37. auth2-passwd.c
  38. auth2-pubkey.c
  39. auth2.c
  40. authfd.c
  41. authfd.h
  42. authfile.c
  43. authfile.h
  44. bitmap.c
  45. bitmap.h
  46. blocks.c
  47. bufaux.c
  48. bufbn.c
  49. bufec.c
  50. buffer.c
  51. buffer.h
  52. buildpkg.sh.in
  53. canohost.c
  54. canohost.h
  55. chacha.c
  56. chacha.h
  57. channels.c
  58. channels.h
  59. cipher-3des1.c
  60. cipher-aes.c
  61. cipher-aesctr.c
  62. cipher-aesctr.h
  63. cipher-bf1.c
  64. cipher-chachapoly.c
  65. cipher-chachapoly.h
  66. cipher-ctr.c
  67. cipher.c
  68. cipher.h
  69. cleanup.c
  70. clientloop.c
  71. clientloop.h
  72. compat.c
  73. compat.h
  74. config.guess
  75. config.sub
  76. configure.ac
  77. crc32.c
  78. crc32.h
  79. CREDITS
  80. crypto_api.h
  81. deattack.c
  82. deattack.h
  83. defines.h
  84. dh.c
  85. dh.h
  86. digest-libc.c
  87. digest-openssl.c
  88. digest.h
  89. dispatch.c
  90. dispatch.h
  91. dns.c
  92. dns.h
  93. ed25519.c
  94. entropy.c
  95. entropy.h
  96. fatal.c
  97. fe25519.c
  98. fe25519.h
  99. fixalgorithms
  100. fixpaths
  101. fixprogs
  102. ge25519.c
  103. ge25519.h
  104. ge25519_base.data
  105. groupaccess.c
  106. groupaccess.h
  107. gss-genr.c
  108. gss-serv-krb5.c
  109. gss-serv.c
  110. hash.c
  111. hmac.c
  112. hmac.h
  113. hostfile.c
  114. hostfile.h
  115. includes.h
  116. INSTALL
  117. install-sh
  118. kex.c
  119. kex.h
  120. kexc25519.c
  121. kexc25519c.c
  122. kexc25519s.c
  123. kexdh.c
  124. kexdhc.c
  125. kexdhs.c
  126. kexecdh.c
  127. kexecdhc.c
  128. kexecdhs.c
  129. kexgex.c
  130. kexgexc.c
  131. kexgexs.c
  132. key.c
  133. key.h
  134. krl.c
  135. krl.h
  136. LICENCE
  137. log.c
  138. log.h
  139. loginrec.c
  140. loginrec.h
  141. logintest.c
  142. mac.c
  143. mac.h
  144. Makefile.in
  145. match.c
  146. match.h
  147. md-sha256.c
  148. md5crypt.c
  149. md5crypt.h
  150. mdoc2man.awk
  151. misc.c
  152. misc.h
  153. mkinstalldirs
  154. moduli
  155. moduli.5
  156. moduli.c
  157. monitor.c
  158. monitor.h
  159. monitor_fdpass.c
  160. monitor_fdpass.h
  161. monitor_mm.c
  162. monitor_mm.h
  163. monitor_wrap.c
  164. monitor_wrap.h
  165. msg.c
  166. msg.h
  167. mux.c
  168. myproposal.h
  169. nchan.c
  170. nchan.ms
  171. nchan2.ms
  172. opacket.c
  173. opacket.h
  174. openssh.xml.in
  175. opensshd.init.in
  176. OVERVIEW
  177. packet.c
  178. packet.h
  179. pathnames.h
  180. pkcs11.h
  181. platform.c
  182. platform.h
  183. poly1305.c
  184. poly1305.h
  185. progressmeter.c
  186. progressmeter.h
  187. PROTOCOL
  188. PROTOCOL.agent
  189. PROTOCOL.certkeys
  190. PROTOCOL.chacha20poly1305
  191. PROTOCOL.key
  192. PROTOCOL.krl
  193. PROTOCOL.mux
  194. readconf.c
  195. readconf.h
  196. README
  197. README.dns
  198. README.platform
  199. README.privsep
  200. README.tun
  201. readpass.c
  202. rijndael.c
  203. rijndael.h
  204. roaming.h
  205. roaming_client.c
  206. roaming_common.c
  207. roaming_dummy.c
  208. roaming_serv.c
  209. rsa.c
  210. rsa.h
  211. sandbox-capsicum.c
  212. sandbox-darwin.c
  213. sandbox-null.c
  214. sandbox-rlimit.c
  215. sandbox-seccomp-filter.c
  216. sandbox-systrace.c
  217. sc25519.c
  218. sc25519.h
  219. scp.1
  220. scp.c
  221. servconf.c
  222. servconf.h
  223. serverloop.c
  224. serverloop.h
  225. session.c
  226. session.h
  227. sftp-client.c
  228. sftp-client.h
  229. sftp-common.c
  230. sftp-common.h
  231. sftp-glob.c
  232. sftp-server-main.c
  233. sftp-server.8
  234. sftp-server.c
  235. sftp.1
  236. sftp.c
  237. sftp.h
  238. smult_curve25519_ref.c
  239. ssh-add.1
  240. ssh-add.c
  241. ssh-agent.1
  242. ssh-agent.c
  243. ssh-dss.c
  244. ssh-ecdsa.c
  245. ssh-ed25519.c
  246. ssh-gss.h
  247. ssh-keygen.1
  248. ssh-keygen.c
  249. ssh-keyscan.1
  250. ssh-keyscan.c
  251. ssh-keysign.8
  252. ssh-keysign.c
  253. ssh-pkcs11-client.c
  254. ssh-pkcs11-helper.8
  255. ssh-pkcs11-helper.c
  256. ssh-pkcs11.c
  257. ssh-pkcs11.h
  258. ssh-rsa.c
  259. ssh-sandbox.h
  260. ssh.1
  261. ssh.c
  262. ssh.h
  263. ssh1.h
  264. ssh2.h
  265. ssh_api.c
  266. ssh_api.h
  267. ssh_config
  268. ssh_config.5
  269. sshbuf-getput-basic.c
  270. sshbuf-getput-crypto.c
  271. sshbuf-misc.c
  272. sshbuf.c
  273. sshbuf.h
  274. sshconnect.c
  275. sshconnect.h
  276. sshconnect1.c
  277. sshconnect2.c
  278. sshd.8
  279. sshd.c
  280. sshd_config
  281. sshd_config.5
  282. ssherr.c
  283. ssherr.h
  284. sshkey.c
  285. sshkey.h
  286. sshlogin.c
  287. sshlogin.h
  288. sshpty.c
  289. sshpty.h
  290. sshtty.c
  291. survey.sh.in
  292. TODO
  293. ttymodes.c
  294. ttymodes.h
  295. uidswap.c
  296. uidswap.h
  297. umac.c
  298. umac.h
  299. uuencode.c
  300. uuencode.h
  301. verify.c
  302. version.h
  303. xmalloc.c
  304. xmalloc.h