Package: sysvinit
Version: 2.88dsf-13.1+squeeze1
Severity: minor
Tags: patch


I added a new entry to inittab on a busy host which did not seem to start upon
invoking `telinit q`. Syslog received the following message:

Nov 22 10:16:29 r7 init: /etc/inittab[93]: process field too long

This limit (127 characters) is not documented in man 5 inittab, nor anywhere
else I looked. In init's source file, there are error messages the explicitely
state length limits for other fields in inittab (which a user is much less
likely to overflow, I think), which seems kind of weird.

The attached patch adds the length limit information to init's error message
and to the appropriate man page.


-- System Information:
Debian Release: 6.0.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-0.bpo.3-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages sysvinit depends on:
ii  initscripts        2.88dsf-13.1+squeeze1 scripts for initializing and shutt
ii  libc6              2.11.3-4              Embedded GNU C Library: Shared lib
ii  libselinux1        2.0.96-1              SELinux runtime shared libraries
ii  libsepol1          2.0.41-1              SELinux library for manipulating b
ii  sysv-rc            2.88dsf-13.1+squeeze1 System-V-like runlevel change mech
ii  sysvinit-utils     2.88dsf-13.1+squeeze1 System-V-like utilities

sysvinit recommends no packages.

sysvinit suggests no packages.

-- no debconf information
diff -u -r a/sysvinit-2.88dsf/man/inittab.5 b/sysvinit-2.88dsf/man/inittab.5
--- a/sysvinit-2.88dsf/man/inittab.5	2009-09-10 10:28:49.000000000 +0200
+++ b/sysvinit-2.88dsf/man/inittab.5	2012-11-22 10:32:17.554426005 +0100
@@ -66,7 +66,7 @@
 .B init 
 will not do utmp and wtmp accounting for that process.  This is needed for 
 gettys that insist on doing their own utmp/wtmp housekeeping.  This is also 
-a historic bug.
+a historic bug. The length of this fiels is limited to 127 characters.
 .\"}}}
 .PP
 The \fIrunlevels\fP field may contain multiple characters for different
diff -u -r a/sysvinit-2.88dsf/src/init.c b/sysvinit-2.88dsf/src/init.c
--- a/sysvinit-2.88dsf/src/init.c	2010-04-13 11:48:54.000000000 +0200
+++ b/sysvinit-2.88dsf/src/init.c	2012-11-22 10:28:54.653475075 +0100
@@ -1314,7 +1314,7 @@
 	if (rlevel && strlen(rlevel) > 11)
 		strcpy(err, "rlevel field too long (max 11 characters)");
 	if (process && strlen(process) > 127)
-		strcpy(err, "process field too long");
+		strcpy(err, "process field too long (max 127 characters)");
 	if (action && strlen(action) > 32)
 		strcpy(err, "action field too long");
 	if (err[0] != 0) {

Reply via email to