tags 605939 + fixed-upstream pending thanks On Sun, Dec 05, 2010 at 10:22:31PM +0000, Roger Leigh wrote: > severity 605939 serious > thanks > > Given the fact that this can break people's configurations when > upgrading from lenny, I'm inclined to raise the severity to > serious. > > I'm happy to fix this upstream now that I've gone through the > code to check exactly what the name is used for. I've made > an initial commit on the master and schroot-1.4 branches to > fix this, and once we're sure it also doesn't look at editor > backups in addition to dpkg conffile data, I'll make a new > release with this bugfix.
This is hopefully fixed in git. This is the logic we're using:
bool
sbuild::is_valid_sessionname (std::string const& name)
{
bool match = false;
static regex file_namespace("^[^:/,.][^:/,]*$");
static regex editor_backup("~$");
static regex debian_dpkg_conffile_cruft("dpkg-(old|dist|new|tmp)$");
if (regex_search(name, file_namespace) &&
!regex_search(name, editor_backup) &&
!regex_search(name, debian_dpkg_conffile_cruft)) {
match = true;
}
return match;
}
If there are no objections and we're correctly picking out all editor
and dpkg backup files, I think this is fixed.
From the updated documentation:
CHROOT NAMES
A number of characters or words are not permitted in a chroot name,
session
name or configuration filename. The name may not contain a leading
period
(‘.’). The characters ‘:’ (colon), ‘,’ (comma) and ‘/’ (forward slash)
are
not permitted anywhere in the name. The name may also not contain a
trail‐
ing tilde (‘~’). The rationale for these restrictions is given below.
‘.’ A leading period could be used to create a name with a relative
path
in it, in combination with ‘/’, and this could allow overwriting
of
files on the host filesystem. Not allowing this character also
means
hidden files cannot be created. It also means some editor
backups
are automatically ignored. Periods are allowed anywhere else in
the
name.
‘:’ A colon is used as a namespace delimiter, and so is not permitted
as
part of a chroot or session name. LVM snapshot names may also
not
contain this character due to a naming restriction by lvcreate(8).
‘/’ Names containing this character are not valid filenames. A
forward
slash would potentially allow creation of files in subdirectories.
‘,’ Commas are used to separate items in lists. Aliases are
separated by
commas and hence can't contain commas in their name.
‘~’ Filenames containing trailing tildes are used for editor
backup
files, which are ignored. Tildes are allowed anywhere else in
the
name.
‘dpkg-old’
‘dpkg-dist’
‘dpkg-new’
‘dpkg-tmp’
These names may not appear at the end of a name. These are
saved
copies of conffiles used by the dpkg package manager, and
will be
ignored.
Regards,
Roger
--
.''`. Roger Leigh
: :' : Debian GNU/Linux http://people.debian.org/~rleigh/
`. `' Printing on GNU/Linux? http://gutenprint.sourceforge.net/
`- GPG Public Key: 0x25BFB848 Please GPG sign your mail.
signature.asc
Description: Digital signature

