2006-01-12 Roland McGrath <roland@redhat.com>
* system.c (sys_sysctl): Don't read off end of NAME when max_strlen
exceeds INFO.nlen.
From Timo Lindfors <timo.lindfors@iki.fi>.
Fixes Debian#339117.
diff --git a/system.c b/system.c
index a1c057e..9d84021 100644
--- a/system.c
+++ b/system.c
@@ -1921,7 +1921,9 @@
goto out;
}
out:
- max_cnt = abbrev(tcp) ? max_strlen : info.nlen;
+ max_cnt = info.nlen;
+ if (abbrev(tcp) && max_cnt > max_strlen)
+ max_cnt = max_strlen;
while (cnt < max_cnt)
tprintf(", %x", name[cnt++]);
if (cnt < info.nlen)