ash: add a FIXME for bug 9246
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
d2c5de0130
commit
7bc3d39695
@ -11659,9 +11659,18 @@ parsebackq: {
|
|||||||
str = NULL;
|
str = NULL;
|
||||||
savelen = out - (char *)stackblock();
|
savelen = out - (char *)stackblock();
|
||||||
if (savelen > 0) {
|
if (savelen > 0) {
|
||||||
|
/*
|
||||||
|
* FIXME: this can allocate very large block on stack and SEGV.
|
||||||
|
* Example:
|
||||||
|
* echo "..<100kbytes>..`true` $(true) `true` ..."
|
||||||
|
* alocates 100kb for every command subst. With about
|
||||||
|
* a hundred command substitutions stack overflows.
|
||||||
|
* With larger prepended string, SEGV happens sooner.
|
||||||
|
*/
|
||||||
str = alloca(savelen);
|
str = alloca(savelen);
|
||||||
memcpy(str, stackblock(), savelen);
|
memcpy(str, stackblock(), savelen);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (oldstyle) {
|
if (oldstyle) {
|
||||||
/* We must read until the closing backquote, giving special
|
/* We must read until the closing backquote, giving special
|
||||||
* treatment to some slashes, and then push the string and
|
* treatment to some slashes, and then push the string and
|
||||||
|
Loading…
Reference in New Issue
Block a user