From owner-svn-src-stable@FreeBSD.ORG Fri Jan 13 07:10:53 2012 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9D090106564A; Fri, 13 Jan 2012 07:10:53 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 70D878FC14; Fri, 13 Jan 2012 07:10:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q0D7ArjH047879; Fri, 13 Jan 2012 07:10:53 GMT (envelope-from mckusick@svn.freebsd.org) Received: (from mckusick@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q0D7ArqQ047876; Fri, 13 Jan 2012 07:10:53 GMT (envelope-from mckusick@svn.freebsd.org) Message-Id: <201201130710.q0D7ArqQ047876@svn.freebsd.org> From: Kirk McKusick Date: Fri, 13 Jan 2012 07:10:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r230048 - stable/8/sbin/dump X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jan 2012 07:10:53 -0000 Author: mckusick Date: Fri Jan 13 07:10:52 2012 New Revision: 230048 URL: http://svn.freebsd.org/changeset/base/230048 Log: MFC: 226520 The current /etc/dumpdates file restricts device names to 32 characters. With the addition of various GEOM layers some device names now exceed this length, for example /dev/mirror/encrypted.elig.journal. This change expands the field to 53 bytes which brings the /etc/dumpdates lines to 80 characters. Exceeding 80 characters makes the /etc/dumpdates file much less human readable. A test is added to dump so that it verifies that the device name will fit in the 53 character field failing the dump if it is too long. This change has been checked to verify that its /etc/dumpdates file is compatible with older versions of dump. Reported by: Martin Sugioarto PR: kern/160678 Modified: stable/8/sbin/dump/dump.h stable/8/sbin/dump/itime.c Directory Properties: stable/8/sbin/dump/ (props changed) Modified: stable/8/sbin/dump/dump.h ============================================================================== --- stable/8/sbin/dump/dump.h Fri Jan 13 07:08:21 2012 (r230047) +++ stable/8/sbin/dump/dump.h Fri Jan 13 07:10:52 2012 (r230048) @@ -171,9 +171,10 @@ void putdumptime(void); if (ddatev != NULL) \ for (ddp = ddatev[i = 0]; i < nddates; ddp = ddatev[++i]) -#define DUMPOUTFMT "%-32s %d %s" /* for printf */ +#define DUMPFMTLEN 53 /* max device pathname length */ +#define DUMPOUTFMT "%-*s %d %s" /* for printf */ /* name, level, ctime(date) */ -#define DUMPINFMT "%32s %d %[^\n]\n" /* inverse for scanf */ +#define DUMPINFMT "%s %d %[^\n]\n" /* inverse for scanf */ void sig(int signo); Modified: stable/8/sbin/dump/itime.c ============================================================================== --- stable/8/sbin/dump/itime.c Fri Jan 13 07:08:21 2012 (r230047) +++ stable/8/sbin/dump/itime.c Fri Jan 13 07:10:52 2012 (r230048) @@ -222,7 +222,10 @@ static void dumprecout(FILE *file, const struct dumpdates *what) { - if (fprintf(file, DUMPOUTFMT, what->dd_name, + if (strlen(what->dd_name) > DUMPFMTLEN) + quit("Name '%s' exceeds DUMPFMTLEN (%d) bytes\n", + what->dd_name, DUMPFMTLEN); + if (fprintf(file, DUMPOUTFMT, DUMPFMTLEN, what->dd_name, what->dd_level, ctime(&what->dd_ddate)) < 0) quit("%s: %s\n", dumpdates, strerror(errno)); }