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)