Re: ulimit and ssh?

2009-09-14 Thread Marc Herbert
peter360 a écrit :
 
> Thanks for the explanation.   So my understanding of the way ssh works is
> still incorrect.  I am confused about at which point the two parameters,
> "-c" and "ulimit -a" were converted into three, "-c", "ulimit", and "-a".  I
> guess I need to read the source of ssh and bash to really understand this...

Enabling tracing options usually helps a lot.


Instead of this:
sshlocalhost bash-c 'ulimit -a'

Try this:
ssh -v localhost bash -x -c 'ulimit -a'


(And as usual, check out the "Guide to unix shell quoting")




Bash-4.0 Official Patch 29

2009-09-14 Thread Chet Ramey
 BASH PATCH REPORT
 =

Bash-Release: 4.0
Patch-ID: bash40-029

Bug-Reported-by:Christian Krause 
Bug-Reference-ID:   Thu, 25 Jun 2009 21:47:59 +0200
Bug-Reference-URL:  
http://lists.gnu.org/archive/html/bug-bash/2009-06/msg00078.html

Bug-Description:

Previous versions of bash accepted strings in the initial environment
that were not valid shell variable assignments, usually because the
names were invalid, but still created shell variables from them and
passed them to child processes in the environment.

Bash-4.0 ignores those names and does not pass them to child processes.
Some users and automated processes depend on invalid variables being
ignored and passed to child processes.

This patch makes bash continue to ignore the invalid names, but pass
them to child processes in the export environment.

Patch:

*** ../bash-4.0-patched/variables.c 2009-01-04 14:32:46.0 -0500
--- variables.c 2009-06-29 09:17:20.0 -0400
***
*** 253,256 
--- 255,259 
  static int visible_var __P((SHELL_VAR *));
  static int visible_and_exported __P((SHELL_VAR *));
+ static int export_environment_candidate __P((SHELL_VAR *));
  static int local_and_exported __P((SHELL_VAR *));
  static int variable_in_context __P((SHELL_VAR *));
***
*** 376,383 
  #  endif
  #endif
else if (legal_identifier (name))
{
  temp_var = bind_variable (name, string, 0);
! VSETATTR (temp_var, (att_exported | att_imported));
  array_needs_making = 1;
}
--- 379,393 
  #  endif
  #endif
+ #if 0
else if (legal_identifier (name))
+ #else
+   else
+ #endif
{
  temp_var = bind_variable (name, string, 0);
! if (legal_identifier (name))
!   VSETATTR (temp_var, (att_exported | att_imported));
! else
!   VSETATTR (temp_var, (att_exported | att_imported | att_invisible));
  array_needs_making = 1;
}
***
*** 3083,3086 
--- 3098,3111 
  }
  
+ /* Candidate variables for the export environment are either valid variables
+with the export attribute or invalid variables inherited from the initial
+environment and simply passed through. */
+ static int
+ export_environment_candidate (var)
+  SHELL_VAR *var;
+ {
+   return (exported_p (var) && (invisible_p (var) == 0 || imported_p (var)));
+ }
+ 
  /* Return non-zero if VAR is a local variable in the current context and
 is exported. */
***
*** 3439,3443 
--- 3464,3472 
SHELL_VAR **vars;
  
+ #if 0
vars = map_over (visible_and_exported, vcxt);
+ #else
+   vars = map_over (export_environment_candidate, vcxt);
+ #endif
  
if (vars == 0)
*** ../bash-4.0/patchlevel.h2009-01-04 14:32:40.0 -0500
--- patchlevel.h2009-02-22 16:11:31.0 -0500
***
*** 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 28
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 29
  
  #endif /* _PATCHLEVEL_H_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRUc...@case.eduhttp://cnswww.cns.cwru.edu/~chet/




Bash-4.0 Official Patch 30

2009-09-14 Thread Chet Ramey
 BASH PATCH REPORT
 =

Bash-Release: 4.0
Patch-ID: bash40-030

Bug-Reported-by:Henning Bekel 
Bug-Reference-ID:   <7c6eacf262ct...@mid.individual.net>
Bug-Reference-URL:  
http://lists.gnu.org/archive/html/bug-bash/2009-07/msg00054.html

Bug-Description:

A shell function invoked with `bind -x' is supposed to be able to move the
cursor by setting READLINE_POINT.  The effects of this assignment were
sometimes ignored.

Patch:

*** ../bash-4.0-patched/bashline.c  2009-01-08 09:29:24.0 -0500
--- bashline.c  2009-07-16 14:13:41.0 -0400
***
*** 3389,3393 
register int i;
intmax_t mi;
-   int save_point;
sh_parser_state_t ps;
char *cmd, *value, *l;
--- 3389,3392 
***
*** 3433,3437 
  VSETATTR (v, att_exported);
l = value_cell (v);
-   save_point = rl_point;
value = inttostr (rl_point, ibuf, sizeof (ibuf));
v = bind_int_variable ("READLINE_POINT", value);
--- 3432,3435 
***
*** 3451,3455 
  {
i = mi;
!   if (i != save_point)
{
  rl_point = i;
--- 3449,3453 
  {
i = mi;
!   if (i != rl_point)
{
  rl_point = i;
*** ../bash-4.0/patchlevel.h2009-01-04 14:32:40.0 -0500
--- patchlevel.h2009-02-22 16:11:31.0 -0500
***
*** 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 29
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 30
  
  #endif /* _PATCHLEVEL_H_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRUc...@case.eduhttp://cnswww.cns.cwru.edu/~chet/




Bash-4.0 Official Patch 31

2009-09-14 Thread Chet Ramey
 BASH PATCH REPORT
 =

Bash-Release: 4.0
Patch-ID: bash40-031

Bug-Reported-by:Roman Rakus 
Bug-Reference-ID:   <4a93f6e9.4050...@redhat.com>
Bug-Reference-URL:  

Bug-Description:

An implicit assignment to index "0" of an existing array variable caused
the shell to crash when the variable was unset.

Patch:

*** ../bash-4.0-patched/arrayfunc.c 2009-03-08 21:24:39.0 -0400
--- arrayfunc.c 2009-08-24 09:29:43.0 -0400
***
*** 99,103 
hash = assoc_create (0);
if (oldval)
! assoc_insert (hash, "0", oldval);
  
FREE (value_cell (var));
--- 99,103 
hash = assoc_create (0);
if (oldval)
! assoc_insert (hash, savestring ("0"), oldval);
  
FREE (value_cell (var));
*** ../bash-4.0-patched/variables.c 2009-01-04 14:32:46.0 -0500
--- variables.c 2009-08-24 09:29:58.0 -0400
***
*** 2218, 
else if (assoc_p (entry))
{
! assoc_insert (assoc_cell (entry), "0", newval);
  free (newval);
}
--- 2218, 
else if (assoc_p (entry))
{
! assoc_insert (assoc_cell (entry), savestring ("0"), newval);
  free (newval);
}
*** ../bash-4.0/patchlevel.h2009-01-04 14:32:40.0 -0500
--- patchlevel.h2009-02-22 16:11:31.0 -0500
***
*** 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 30
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 31
  
  #endif /* _PATCHLEVEL_H_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRUc...@case.eduhttp://cnswww.cns.cwru.edu/~chet/




Bash-4.0 Official Patch 32

2009-09-14 Thread Chet Ramey
 BASH PATCH REPORT
 =

Bash-Release: 4.0
Patch-ID: bash40-032

Bug-Reported-by:mu...@muszi.kite.hu
Bug-Reference-ID:   <20090826113159.18815.qm...@muszi.kite.hu>
Bug-Reference-URL:  
http://lists.gnu.org/archive/html/bug-bash/2009-08/msg00090.html

Bug-Description:

Bash-4.0 has a memory leak when processing ${!pre...@}.

Patch:

*** ../bash-4.0-patched/subst.c 2009-07-22 23:18:55.0 -0400
--- subst.c 2009-08-26 23:08:51.0 -0400
***
*** 6607,6611 
}
free (x);
!   free (xlist);
free (temp1);
*indexp = sindex;
--- 6769,6773 
}
free (x);
!   dispose_words (xlist);
free (temp1);
*indexp = sindex;
*** ../bash-4.0/patchlevel.h2009-01-04 14:32:40.0 -0500
--- patchlevel.h2009-02-22 16:11:31.0 -0500
***
*** 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 31
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 32
  
  #endif /* _PATCHLEVEL_H_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRUc...@case.eduhttp://cnswww.cns.cwru.edu/~chet/




Bash-4.0 Official Patch 33

2009-09-14 Thread Chet Ramey
 BASH PATCH REPORT
 =

Bash-Release: 4.0
Patch-ID: bash40-033

Bug-Reported-by:Dr. Werner Fink 
Bug-Reference-ID:   <200907010951.n619p76i013...@boole.suse.de>
Bug-Reference-URL:  
http://lists.gnu.org/archive/html/bug-bash/2009-07/msg0.html

Bug-Description:

Bash-4.0 has a memory leak in the `read' builtin when the number of fields
read is not the same as the number of variables passed as arguments.

Patch:

*** ../bash-4.0-patched/builtins/read.def   2009-03-08 21:24:45.0 
-0400
--- builtins/read.def   2009-07-01 15:32:42.0 -0400
***
*** 764,768 
tofree = input_string = t;
else
!   input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, 
saw_escape);
  }
  #endif
--- 764,771 
tofree = input_string = t;
else
!   {
! input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, 
saw_escape);
! tofree = t;
!   }
  }
  #endif
*** ../bash-4.0/patchlevel.h2009-01-04 14:32:40.0 -0500
--- patchlevel.h2009-02-22 16:11:31.0 -0500
***
*** 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 32
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 33
  
  #endif /* _PATCHLEVEL_H_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRUc...@case.eduhttp://cnswww.cns.cwru.edu/~chet/




Sourcing shopt setting removes 'history' from SHELLOPTS

2009-09-14 Thread Freddy Vulto
Configuration Information [Automatically generated, do not change]:
Machine: i486
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='i486'
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i486-pc-linux-gnu'
-DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash'
-DSHELL -DHAVE_CONFIG_H   -I.  -I../bash -I../bash/include
-I../bash/lib   -g -O2 -Wall
uname output: Linux myhost 2.6.26-2-686 #1 SMP Wed Aug 19 06:06:52
UTC 2009 i686 GNU/Linux
Machine Type: i486-pc-linux-gnu

Bash Version: 3.2
Patch Level: 39
Release Status: release

Description:
Sourcing or eval'ing code which touches a shopt setting, causes
`history' to disappear from the SHELLOPTS environment variable.

Repeat-By:

$ # Make sure 'history' is on, and 'verbose' is off
$ set -o history +o verbose
$ echo $SHELLOPTS
braceexpand:histexpand:history:interactive-comments:monitor:vi
$ eval set +o verbose
$ echo $SHELLOPTS  # 'history' is now gone
braceexpand:histexpand:interactive-comments:monitor:vi

The same happens if you source a file (e.g. t.sh) with just one
command (e.g. set -o nounset):

$ set -o history
$ echo $SHELLOPTS
braceexpand:histexpand:history:interactive-comments:monitor:vi
$ cat t.sh
set -o nounset
$ source t.sh
$ echo $SHELLOPTS  # 'history' is now gone
braceexpand:histexpand:interactive-comments:monitor:nounset:vi

It doesn't occur if the shopt setting is touched directly (without
source or eval):

$ # Make sure 'history' is on, and 'verbose' is off
$ set -o history +o verbose
$ echo $SHELLOPTS
braceexpand:histexpand:history:interactive-comments:monitor:vi
$ set +o verbose
$ echo $SHELLOPTS  # 'history' is still there
braceexpand:histexpand:history:interactive-comments:monitor:vi


Regards,

Freddy Vulto
http://fvue.nl




Re: Sourcing shopt setting removes 'history' from SHELLOPTS

2009-09-14 Thread Chet Ramey
> Machine Type: i486-pc-linux-gnu
> 
> Bash Version: 3.2
> Patch Level: 39
> Release Status: release
> 
> Description:
> Sourcing or eval'ing code which touches a shopt setting, causes
> `history' to disappear from the SHELLOPTS environment variable.

Look at bash-3.2 patch 41.

Chet

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRUc...@case.eduhttp://cnswww.cns.cwru.edu/~chet/