b130412
			     BASH PATCH REPORT
b130412
			     =================
b130412
b130412
Bash-Release: 3.2
b130412
Patch-ID: bash32-011
b130412
b130412
Bug-Reported-by: Petr Sumbera <Petr.Sumbera@Sun.COM>
b130412
Bug-Reference-ID: <45AF5F4B.1020800@sun.com>
b130412
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00049.html
b130412
b130412
Bug-Description:
b130412
b130412
Under certain circumstances (loopback mounts), the bash getcwd does not
b130412
return correct results.  This patch allows the use of the Solaris libc
b130412
getcwd even though it doesn't dynamically allocate memory.
b130412
b130412
Run `touch configure' to make sure make doesn't try to run autoconf.
b130412
Then run configure with whatever options you like.
b130412
b130412
Patch:
b130412
b130412
*** ../bash-3.2-patched/configure.in	Tue Sep 26 11:05:45 2006
b130412
--- configure.in	Wed Jan 31 09:48:00 2007
b130412
***************
b130412
*** 6,10 ****
b130412
  dnl Process this file with autoconf to produce a configure script.
b130412
  
b130412
! # Copyright (C) 1987-2006 Free Software Foundation, Inc.
b130412
  
b130412
  # This program is free software; you can redistribute it and/or modify
b130412
--- 6,10 ----
b130412
  dnl Process this file with autoconf to produce a configure script.
b130412
  
b130412
! # Copyright (C) 1987-2007 Free Software Foundation, Inc.
b130412
  
b130412
  # This program is free software; you can redistribute it and/or modify
b130412
***************
b130412
*** 992,996 ****
b130412
  sco3.2*)	LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
b130412
  sunos4*)	LOCAL_CFLAGS=-DSunOS4 ;;
b130412
! solaris2.5*)	LOCAL_CFLAGS=-DSunOS5 ;;
b130412
  lynxos*)	LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
b130412
  linux*)		LOCAL_LDFLAGS=-rdynamic		 # allow dynamic loading
b130412
--- 992,997 ----
b130412
  sco3.2*)	LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
b130412
  sunos4*)	LOCAL_CFLAGS=-DSunOS4 ;;
b130412
! solaris2.5*)	LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
b130412
! solaris2*)	LOCAL_CFLAGS=-DSOLARIS ;;
b130412
  lynxos*)	LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
b130412
  linux*)		LOCAL_LDFLAGS=-rdynamic		 # allow dynamic loading
b130412
*** ../bash-3.2-patched/config-bot.h	Tue Sep 12 16:43:04 2006
b130412
--- config-bot.h	Tue Mar  6 10:41:31 2007
b130412
***************
b130412
*** 2,6 ****
b130412
  /* modify settings or make new ones based on what autoconf tells us. */
b130412
  
b130412
! /* Copyright (C) 1989-2002 Free Software Foundation, Inc.
b130412
  
b130412
     This file is part of GNU Bash, the Bourne Again SHell.
b130412
--- 2,6 ----
b130412
  /* modify settings or make new ones based on what autoconf tells us. */
b130412
  
b130412
! /* Copyright (C) 1989-2007 Free Software Foundation, Inc.
b130412
  
b130412
     This file is part of GNU Bash, the Bourne Again SHell.
b130412
***************
b130412
*** 71,77 ****
b130412
  #endif
b130412
  
b130412
! /* If we have a getcwd(3), but it calls popen(), #undef HAVE_GETCWD so
b130412
!    the replacement in getcwd.c will be built. */
b130412
! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN)
b130412
  #  undef HAVE_GETCWD
b130412
  #endif
b130412
--- 71,79 ----
b130412
  #endif
b130412
  
b130412
! /* If we have a getcwd(3), but one that does not dynamically allocate memory,
b130412
!    #undef HAVE_GETCWD so the replacement in getcwd.c will be built.  We do
b130412
!    not do this on Solaris, because their implementation of loopback mounts
b130412
!    breaks the traditional file system assumptions that getcwd uses. */
b130412
! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN) && !defined (SOLARIS)
b130412
  #  undef HAVE_GETCWD
b130412
  #endif
b130412
*** ../bash-3.2-patched/builtins/common.c	Thu Jul 27 09:39:51 2006
b130412
--- builtins/common.c	Tue Mar  6 10:43:27 2007
b130412
***************
b130412
*** 1,3 ****
b130412
! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
b130412
  
b130412
     This file is part of GNU Bash, the Bourne Again SHell.
b130412
--- 1,3 ----
b130412
! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
b130412
  
b130412
     This file is part of GNU Bash, the Bourne Again SHell.
b130412
***************
b130412
*** 476,480 ****
b130412
--- 476,484 ----
b130412
    if (the_current_working_directory == 0)
b130412
      {
b130412
+ #if defined (GETCWD_BROKEN)
b130412
+       the_current_working_directory = getcwd (0, PATH_MAX);
b130412
+ #else
b130412
        the_current_working_directory = getcwd (0, 0);
b130412
+ #endif
b130412
        if (the_current_working_directory == 0)
b130412
  	{
b130412
*** ../bash-3.2-patched/configure	Tue Sep 26 11:06:01 2006
b130412
--- configure	Tue Mar  6 10:59:20 2007
b130412
***************
b130412
*** 27317,27321 ****
b130412
  sco3.2*)	LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
b130412
  sunos4*)	LOCAL_CFLAGS=-DSunOS4 ;;
b130412
! solaris2.5*)	LOCAL_CFLAGS=-DSunOS5 ;;
b130412
  lynxos*)	LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
b130412
  linux*)		LOCAL_LDFLAGS=-rdynamic		 # allow dynamic loading
b130412
--- 27317,27322 ----
b130412
  sco3.2*)	LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
b130412
  sunos4*)	LOCAL_CFLAGS=-DSunOS4 ;;
b130412
! solaris2.5*)	LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
b130412
! solaris2*)	LOCAL_CFLAGS=-DSOLARIS ;;
b130412
  lynxos*)	LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
b130412
  linux*)		LOCAL_LDFLAGS=-rdynamic		 # allow dynamic loading
b130412
*** ../bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006
b130412
--- patchlevel.h	Mon Oct 16 14:22:54 2006
b130412
***************
b130412
*** 26,30 ****
b130412
     looks for to find the patch level (for the sccs version string). */
b130412
  
b130412
! #define PATCHLEVEL 10
b130412
  
b130412
  #endif /* _PATCHLEVEL_H_ */
b130412
--- 26,30 ----
b130412
     looks for to find the patch level (for the sccs version string). */
b130412
  
b130412
! #define PATCHLEVEL 11
b130412
  
b130412
  #endif /* _PATCHLEVEL_H_ */