Borken dirname on Solaris 2.5.1

mouring at etoh.eviladmin.org mouring at etoh.eviladmin.org
Thu Oct 25 01:21:44 EST 2001


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
>




More information about the openssh-unix-dev mailing list