summaryrefslogtreecommitdiff
path: root/usr
diff options
context:
space:
mode:
authorKonstantin Ananyev <Konstantin.Ananyev@Sun.COM>2009-11-09 07:30:50 -0800
committerKonstantin Ananyev <Konstantin.Ananyev@Sun.COM>2009-11-09 07:30:50 -0800
commit372a97b12e3cfa065a1988718894412aea87f4b3 (patch)
treecd3d06c23035c47f723d05703bec4bdf29511aed /usr
parentbd7d5b027e51917c5ae683c4c480c39392122031 (diff)
downloadillumos-gate-372a97b12e3cfa065a1988718894412aea87f4b3.tar.gz
6899140 libgrubmgmt can corrupt the contents of the stack
Diffstat (limited to 'usr')
-rw-r--r--usr/src/lib/libgrubmgmt/common/libgrub_menu.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/usr/src/lib/libgrubmgmt/common/libgrub_menu.c b/usr/src/lib/libgrubmgmt/common/libgrub_menu.c
index 913185eead..f486cb85f9 100644
--- a/usr/src/lib/libgrubmgmt/common/libgrub_menu.c
+++ b/usr/src/lib/libgrubmgmt/common/libgrub_menu.c
@@ -398,11 +398,11 @@ grub_menu_init(const char *path, grub_menu_t **menup)
}
/* remove white space at the end of line */
- for (; isspace(cp[n - 1]); --n)
+ for (; n != 0 && isspace(cp[n - 1]); --n)
;
cp[n] = '\0';
- if (cp[n - 1] == '\\') {
+ if (n > 0 && cp[n - 1] == '\\') {
len -= n - 1;
assert(len >= 2);
cp += n - 1;