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 >
Maybe Matching 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)