Bugzilla – Attachment 2672 Details for
Bug 2428
realpath command doesn't work
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Use compat realpath if native one does not work with non-existent files.
openssh-realpath-ENOENT2.patch (text/plain), 1.86 KB, created by
Darren Tucker
on 2015-07-16 08:45:55 AEST
(
hide
)
Description:
Use compat realpath if native one does not work with non-existent files.
Filename:
MIME Type:
Creator:
Darren Tucker
Created:
2015-07-16 08:45:55 AEST
Size:
1.86 KB
patch
obsolete
>diff --git a/configure.ac b/configure.ac >index 2240c72..9b05c30 100644 >--- a/configure.ac >+++ b/configure.ac >@@ -1674,7 +1674,6 @@ AC_CHECK_FUNCS([ \ > pstat \ > readpassphrase \ > reallocarray \ >- realpath \ > recvmsg \ > rresvport_af \ > sendmsg \ >@@ -1891,6 +1890,32 @@ AC_CHECK_FUNCS([setresgid], [ > ) > ]) > >+AC_CHECK_FUNCS([realpath], [ >+ dnl the sftp v3 spec says SSH_FXP_REALPATH will "canonicalize any given >+ dnl path name", however some implementations of realpath (and some >+ dnl versions of the POSIX spec) do not work on non-existent files, >+ dnl so we use the OpenBSD implementation on those platforms. >+ AC_MSG_CHECKING([if realpath works with non-existent files]) >+ AC_RUN_IFELSE( >+ [AC_LANG_PROGRAM([[ >+#include <limits.h> >+#include <stdlib.h> >+#include <errno.h> >+ ]], [[ >+ char buf[PATH_MAX]; >+ if (realpath("/opensshnonexistentfilename1234", buf) == NULL) >+ if (errno == ENOENT) >+ exit(1); >+ exit(0); >+ ]])], >+ [AC_MSG_RESULT([yes])], >+ [AC_DEFINE([BROKEN_REALPATH], [1], >+ [realpath does not work with nonexistent files]) >+ AC_MSG_RESULT([no])], >+ [AC_MSG_WARN([cross compiling: assuming working])] >+ ) >+]) >+ > dnl Checks for time functions > AC_CHECK_FUNCS([gettimeofday time]) > dnl Checks for utmp functions >diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h >index cb59ccd..1ff7114 100644 >--- a/openbsd-compat/openbsd-compat.h >+++ b/openbsd-compat/openbsd-compat.h >@@ -70,8 +70,16 @@ void *reallocarray(void *, size_t, size_t); > #endif > > #if !defined(HAVE_REALPATH) || defined(BROKEN_REALPATH) >+/* >+ * glibc's FORTIFY_SOURCE can redefine this and prevent us picking up the >+ * compat version. >+ */ >+# ifdef BROKEN_REALPATH >+# define realpath(x, y) _ssh_compat_realpath(x, y) >+# endif >+ > char *realpath(const char *path, char *resolved); >-#endif >+#endif > > #ifndef HAVE_RRESVPORT_AF > int rresvport_af(int *alport, sa_family_t af);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
djm
:
ok+
Actions:
View
|
Diff
Attachments on
bug 2428
:
2665
|
2666
|
2667
|
2668
|
2669
|
2671
| 2672