132 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			     BASH PATCH REPORT
 | 
						|
			     =================
 | 
						|
 | 
						|
Bash-Release:	4.2
 | 
						|
Patch-ID:	bash42-005
 | 
						|
 | 
						|
Bug-Reported-by:	Dennis Williamson <dennistwilliamson@gmail.com>
 | 
						|
Bug-Reference-ID:	<AANLkTikDbEV5rnbPc0zOfmZfBcg0xGetzLLzK+KjRiNa@mail.gmail.com>
 | 
						|
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00147.html
 | 
						|
 | 
						|
Bug-Description:
 | 
						|
 | 
						|
Systems that use tzset() to set the local timezone require the TZ variable
 | 
						|
to be in the environment.  Bash must make sure the environment has been
 | 
						|
modified with any updated value for TZ before calling tzset().  This
 | 
						|
affects prompt string expansions and the `%T' printf conversion specification
 | 
						|
on systems that do not allow bash to supply a replacement for getenv(3).
 | 
						|
 | 
						|
Patch (apply with `patch -p0'):
 | 
						|
 | 
						|
*** ../bash-4.2-patched/variables.h	2010-12-02 20:22:01.000000000 -0500
 | 
						|
--- variables.h	2011-02-19 19:57:12.000000000 -0500
 | 
						|
***************
 | 
						|
*** 314,317 ****
 | 
						|
--- 314,318 ----
 | 
						|
  extern void sort_variables __P((SHELL_VAR **));
 | 
						|
  
 | 
						|
+ extern int chkexport __P((char *));
 | 
						|
  extern void maybe_make_export_env __P((void));
 | 
						|
  extern void update_export_env_inplace __P((char *, int, char *));
 | 
						|
*** ../bash-4.2-patched/variables.c	2011-01-24 20:07:48.000000000 -0500
 | 
						|
--- variables.c	2011-02-19 20:04:50.000000000 -0500
 | 
						|
***************
 | 
						|
*** 3654,3657 ****
 | 
						|
--- 3654,3673 ----
 | 
						|
  }
 | 
						|
  
 | 
						|
+ int
 | 
						|
+ chkexport (name)
 | 
						|
+      char *name;
 | 
						|
+ {
 | 
						|
+   SHELL_VAR *v;
 | 
						|
+ 
 | 
						|
+   v = find_variable (name);
 | 
						|
+   if (exported_p (v))
 | 
						|
+     {
 | 
						|
+       array_needs_making = 1;
 | 
						|
+       maybe_make_export_env ();
 | 
						|
+       return 1;
 | 
						|
+     }
 | 
						|
+   return 0;
 | 
						|
+ }
 | 
						|
+ 
 | 
						|
  void
 | 
						|
  maybe_make_export_env ()
 | 
						|
***************
 | 
						|
*** 4215,4219 ****
 | 
						|
    { "TEXTDOMAINDIR", sv_locale },
 | 
						|
  
 | 
						|
! #if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
 | 
						|
    { "TZ", sv_tz },
 | 
						|
  #endif
 | 
						|
--- 4231,4235 ----
 | 
						|
    { "TEXTDOMAINDIR", sv_locale },
 | 
						|
  
 | 
						|
! #if defined (HAVE_TZSET)
 | 
						|
    { "TZ", sv_tz },
 | 
						|
  #endif
 | 
						|
***************
 | 
						|
*** 4559,4568 ****
 | 
						|
  #endif /* HISTORY */
 | 
						|
  
 | 
						|
! #if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
 | 
						|
  void
 | 
						|
  sv_tz (name)
 | 
						|
       char *name;
 | 
						|
  {
 | 
						|
!   tzset ();
 | 
						|
  }
 | 
						|
  #endif
 | 
						|
--- 4575,4585 ----
 | 
						|
  #endif /* HISTORY */
 | 
						|
  
 | 
						|
! #if defined (HAVE_TZSET)
 | 
						|
  void
 | 
						|
  sv_tz (name)
 | 
						|
       char *name;
 | 
						|
  {
 | 
						|
!   if (chkexport (name))
 | 
						|
!     tzset ();
 | 
						|
  }
 | 
						|
  #endif
 | 
						|
*** ../bash-4.2-patched/parse.y	2011-01-02 15:48:11.000000000 -0500
 | 
						|
--- parse.y	2011-02-19 20:05:00.000000000 -0500
 | 
						|
***************
 | 
						|
*** 5136,5139 ****
 | 
						|
--- 5136,5142 ----
 | 
						|
  	      /* Make the current time/date into a string. */
 | 
						|
  	      (void) time (&the_time);
 | 
						|
+ #if defined (HAVE_TZSET)
 | 
						|
+ 	      sv_tz ("TZ");		/* XXX -- just make sure */
 | 
						|
+ #endif
 | 
						|
  	      tm = localtime (&the_time);
 | 
						|
  
 | 
						|
*** ../bash-4.2-patched/builtins/printf.def	2010-11-23 10:02:55.000000000 -0500
 | 
						|
--- builtins/printf.def	2011-02-19 20:05:04.000000000 -0500
 | 
						|
***************
 | 
						|
*** 466,469 ****
 | 
						|
--- 466,472 ----
 | 
						|
  		else
 | 
						|
  		  secs = arg;
 | 
						|
+ #if defined (HAVE_TZSET)
 | 
						|
+ 		sv_tz ("TZ");		/* XXX -- just make sure */
 | 
						|
+ #endif
 | 
						|
  		tm = localtime (&secs);
 | 
						|
  		n = strftime (timebuf, sizeof (timebuf), timefmt, tm);
 | 
						|
*** ../bash-4.2-patched/patchlevel.h	Sat Jun 12 20:14:48 2010
 | 
						|
--- patchlevel.h	Thu Feb 24 21:41:34 2011
 | 
						|
***************
 | 
						|
*** 26,30 ****
 | 
						|
     looks for to find the patch level (for the sccs version string). */
 | 
						|
  
 | 
						|
! #define PATCHLEVEL 4
 | 
						|
  
 | 
						|
  #endif /* _PATCHLEVEL_H_ */
 | 
						|
--- 26,30 ----
 | 
						|
     looks for to find the patch level (for the sccs version string). */
 | 
						|
  
 | 
						|
! #define PATCHLEVEL 5
 | 
						|
  
 | 
						|
  #endif /* _PATCHLEVEL_H_ */
 |