Discovered this post an upgrade to 2.9.9p2, Solaris 2.5.1 dirname is
busted for paths like "/usr", returning "" rather than
"/".
Index: acconfig.h
==================================================================RCS file:
/cvsroot/upstream/openssh/acconfig.h,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 acconfig.h
--- acconfig.h 2001/10/23 15:18:33 1.1.1.3
+++ acconfig.h 2001/10/24 15:09:49
@@ -333,6 +333,9 @@
/* Define if you want smartcard support */
#undef SMARTCARD
+/* Define if your dirname is busted */
+#undef BROKEN_DIRNAME
+
@BOTTOM@
/* ******************* Shouldn't need to edit below this line
************** */
Index: configure.in
==================================================================RCS file:
/cvsroot/upstream/openssh/configure.in,v
retrieving revision 1.5
diff -u -r1.5 configure.in
--- configure.in 2001/10/23 16:26:00 1.5
+++ configure.in 2001/10/24 15:09:49
@@ -531,6 +531,23 @@
)
fi
+# Check for broken dirname (Solaris 2.5.1)
+AC_MSG_CHECKING([whether dirname works correctly for the root directory])
+AC_TRY_RUN(
+ [
+#include <string.h>
+#ifdef HAVE_LIBGEN_H
+#include <libgen.h>
+#endif
+int main(void){char buf[5];strcpy(buf,"/usr");return
strlen(dirname(buf))==0;}
+ ],
+ [AC_MSG_RESULT(yes)],
+ [
+ AC_MSG_RESULT(no)
+ AC_DEFINE(BROKEN_DIRNAME)
+ ]
+)
+
AC_FUNC_GETPGRP
# Check for PAM libs
Index: openbsd-compat/dirname.c
==================================================================RCS file:
/cvsroot/upstream/openssh/openbsd-compat/dirname.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 dirname.c
--- openbsd-compat/dirname.c 2001/10/23 15:18:35 1.1.1.1
+++ openbsd-compat/dirname.c 2001/10/24 15:09:49
@@ -28,6 +28,11 @@
*/
#include "includes.h"
+
+#if defined(BROKEN_DIRNAME) /* For those with broken dirname() */
+# undef HAVE_DIRNAME
+#endif
+
#ifndef HAVE_DIRNAME
#if defined(LIBC_SCCS) && !defined(lint)
--
Alex Kiernan, Principal Engineer, Development, Thus PLC
I believe this has been dealt with in the current CVS tree. - Ben On 24 Oct 2001, Alex Kiernan wrote:> Discovered this post an upgrade to 2.9.9p2, Solaris 2.5.1 dirname is > busted for paths like "/usr", returning "" rather than "/". > > Index: acconfig.h > ==================================================================> RCS file: /cvsroot/upstream/openssh/acconfig.h,v > retrieving revision 1.1.1.3 > diff -u -r1.1.1.3 acconfig.h > --- acconfig.h 2001/10/23 15:18:33 1.1.1.3 > +++ acconfig.h 2001/10/24 15:09:49 > @@ -333,6 +333,9 @@ > /* Define if you want smartcard support */ > #undef SMARTCARD > > +/* Define if your dirname is busted */ > +#undef BROKEN_DIRNAME > + > @BOTTOM@ > > /* ******************* Shouldn't need to edit below this line ************** */ > Index: configure.in > ==================================================================> RCS file: /cvsroot/upstream/openssh/configure.in,v > retrieving revision 1.5 > diff -u -r1.5 configure.in > --- configure.in 2001/10/23 16:26:00 1.5 > +++ configure.in 2001/10/24 15:09:49 > @@ -531,6 +531,23 @@ > ) > fi > > +# Check for broken dirname (Solaris 2.5.1) > +AC_MSG_CHECKING([whether dirname works correctly for the root directory]) > +AC_TRY_RUN( > + [ > +#include <string.h> > +#ifdef HAVE_LIBGEN_H > +#include <libgen.h> > +#endif > +int main(void){char buf[5];strcpy(buf,"/usr");return strlen(dirname(buf))==0;} > + ], > + [AC_MSG_RESULT(yes)], > + [ > + AC_MSG_RESULT(no) > + AC_DEFINE(BROKEN_DIRNAME) > + ] > +) > + > AC_FUNC_GETPGRP > > # Check for PAM libs > Index: openbsd-compat/dirname.c > ==================================================================> RCS file: /cvsroot/upstream/openssh/openbsd-compat/dirname.c,v > retrieving revision 1.1.1.1 > diff -u -r1.1.1.1 dirname.c > --- openbsd-compat/dirname.c 2001/10/23 15:18:35 1.1.1.1 > +++ openbsd-compat/dirname.c 2001/10/24 15:09:49 > @@ -28,6 +28,11 @@ > */ > > #include "includes.h" > + > +#if defined(BROKEN_DIRNAME) /* For those with broken dirname() */ > +# undef HAVE_DIRNAME > +#endif > + > #ifndef HAVE_DIRNAME > > #if defined(LIBC_SCCS) && !defined(lint) > > -- > Alex Kiernan, Principal Engineer, Development, Thus PLC >
Seemingly Similar Threads
- [Bug 558] configure broken_dirname checks not run on Solaris 2.5.1
- [Bug 615] OpenSSH 3.6.1p2 ON SCO 3.2v4.2 + STRICTMODES -->yes (broken dirname in libgen)
- [Bug 558] configure broken_dirname checks not run on Solaris 2.5.1
- Linux 2.2 + borken mmap() round 1
- [Bug 615] OpenSSH 3.6.1p2 ON SCO 3.2v4.2 + STRICTMODES -->yes (broken dirname in libgen)