Subject: PR/28852 CVS commit: src/bin/sh
To: None <gnats-admin@netbsd.org, netbsd-bugs@netbsd.org>
From: David Laight <dsl@netbsd.org>
List: netbsd-bugs
Date: 02/14/2005 20:47:01
The following reply was made to PR bin/28852; it has been noted by GNATS.
From: David Laight <dsl@netbsd.org>
To: gnats-bugs@netbsd.org
Cc:
Subject: PR/28852 CVS commit: src/bin/sh
Date: Mon, 14 Feb 2005 20:46:26 +0000 (UTC)
Module Name: src
Committed By: dsl
Date: Mon Feb 14 20:46:26 UTC 2005
Modified Files:
src/bin/sh: expand.c
Log Message:
expbackq() was incorrectly backing up a temporary buffer when removing \n
from the end of output of commands inside $(...) substitutions.
If the program output is n*128+1 bytes long (ending in a \n) then the code
checks buf[-1] for another \n - looking an uninitialised stack.
On a big-endian system an integer of value 10 will satisfy this (unlikely
on little endian) and can happen depending on the last code path to use
a lot of stack!
This caused the problem with newvers.sh on sparc64 after ', 2005' was
added to the date list.
Fixed PR/28852
To generate a diff of this commit:
cvs rdiff -r1.67 -r1.68 src/bin/sh/expand.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.