Module: wine Branch: master Commit: 7c3f3d09dd589430060f3f0bee6d813e213c65f3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=7c3f3d09dd589430060f3f0bee...
Author: Jason Edmeades jason@edmeades.me.uk Date: Thu Oct 25 21:17:13 2012 +0100
cmd: Don't overflow parameter length when copying substring.
---
programs/cmd/tests/test_builtins.cmd.exp | 2 +- programs/cmd/wcmdmain.c | 1 + 2 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index aeaa14d..8a7e3fa 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -275,7 +275,7 @@ P0S q qwe er -@todo_wine@'ty'@or_broken@'' +'ty'@or_broken@'' 't'@or_broken@'' ert@or_broken@qwerty e@or_broken@qwerty diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c index 89c1327..534e5a6 100644 --- a/programs/cmd/wcmdmain.c +++ b/programs/cmd/wcmdmain.c @@ -730,6 +730,7 @@ static WCHAR *WCMD_expand_envvar(WCHAR *start, else if (copybytes < 0) copybytes = 0; WCMD_strsubstW(start, endOfVar + 1, startCopy, copybytes); } else { + substrlength = min(substrlength, len - (startCopy- thisVarContents + 1)); WCMD_strsubstW(start, endOfVar + 1, startCopy, substrlength); }