]> granicus.if.org Git - sudo/log
sudo
12 years agoregen
Todd C. Miller [Thu, 16 Feb 2012 22:03:46 +0000 (17:03 -0500)]
regen

12 years agoBuild flat packages, not package bundles, on Mac OS X.
Todd C. Miller [Thu, 16 Feb 2012 16:27:22 +0000 (11:27 -0500)]
Build flat packages, not package bundles, on Mac OS X.

12 years agoMove macos section to be with the other OS-specific sections.
Todd C. Miller [Fri, 10 Feb 2012 21:22:21 +0000 (16:22 -0500)]
Move macos section to be with the other OS-specific sections.

12 years agoSync with translationproject.org
Todd C. Miller [Fri, 10 Feb 2012 19:30:01 +0000 (14:30 -0500)]
Sync with translationproject.org

12 years agoDon't permanently add -D_FORTIFY_SOURCE=2 to CPPFLAGS
Todd C. Miller [Fri, 10 Feb 2012 19:28:10 +0000 (14:28 -0500)]
Don't permanently add -D_FORTIFY_SOURCE=2 to CPPFLAGS

12 years agoAdd Mac OS X support, printing the latest chunk of the NEWS file
Todd C. Miller [Fri, 10 Feb 2012 17:50:15 +0000 (12:50 -0500)]
Add Mac OS X support, printing the latest chunk of the NEWS file
and the license text in the installer.

12 years agoAdd explicit file modes that match those used by "make install"
Todd C. Miller [Fri, 10 Feb 2012 17:35:41 +0000 (12:35 -0500)]
Add explicit file modes that match those used by "make install"

12 years agoSync with upstream for Mac OS X fixes.
Todd C. Miller [Fri, 10 Feb 2012 16:34:08 +0000 (11:34 -0500)]
Sync with upstream for Mac OS X fixes.

12 years agoGot back to using "install-sh -M" for files installed as non-readable
Todd C. Miller [Fri, 10 Feb 2012 16:31:54 +0000 (11:31 -0500)]
Got back to using "install-sh -M" for files installed as non-readable
by owner.  This fixes "make install" as non-root for package building.

12 years agoSync with translationproject.org
Todd C. Miller [Thu, 9 Feb 2012 16:17:35 +0000 (11:17 -0500)]
Sync with translationproject.org

12 years agoUse -m not -M for install-sh for everything except setuid.
Todd C. Miller [Thu, 9 Feb 2012 16:11:58 +0000 (11:11 -0500)]
Use -m not -M for install-sh for everything except setuid.
Install locale .mo files mode 0444, not 0644.
If timedir parent doesn't exist, use default dir mode, not 0700.

12 years agoRe-sync with upstream; no longer need a local patch.
Todd C. Miller [Tue, 7 Feb 2012 18:26:27 +0000 (13:26 -0500)]
Re-sync with upstream; no longer need a local patch.

12 years agoAdd support for building Mac OS X packages.
Todd C. Miller [Tue, 7 Feb 2012 16:49:46 +0000 (11:49 -0500)]
Add support for building Mac OS X packages.

12 years agoSync with upstream
Todd C. Miller [Tue, 7 Feb 2012 16:45:42 +0000 (11:45 -0500)]
Sync with upstream

12 years agoNo longer need to define _PATH_SUDO_CONF here.
Todd C. Miller [Tue, 7 Feb 2012 16:45:11 +0000 (11:45 -0500)]
No longer need to define _PATH_SUDO_CONF here.

12 years agoFix noexec for Mac OS X.
Todd C. Miller [Tue, 7 Feb 2012 05:18:08 +0000 (00:18 -0500)]
Fix noexec for Mac OS X.

12 years agoMove _PATH_SUDO_CONF override to common to match sudo_debug.c
Todd C. Miller [Mon, 6 Feb 2012 20:57:26 +0000 (15:57 -0500)]
Move _PATH_SUDO_CONF override to common to match sudo_debug.c

12 years agoMore complete fix for LDR_PRELOAD on AIX. The addition of
Todd C. Miller [Mon, 6 Feb 2012 20:46:17 +0000 (15:46 -0500)]
More complete fix for LDR_PRELOAD on AIX.  The addition of
set_perm(PERM_ROOT) before calling the nss open functions (needed
to avoid a GNU TLS bug) also broke LDR_PRELOAD.  Setting the effective
and then real uid to 0 for PERM_ROOT works around the issue.

12 years agoregen
Todd C. Miller [Mon, 6 Feb 2012 18:40:24 +0000 (13:40 -0500)]
regen

12 years agoSet real uid to root before calling sudo_edit() or run_command()
Todd C. Miller [Mon, 6 Feb 2012 18:33:46 +0000 (13:33 -0500)]
Set real uid to root before calling sudo_edit() or run_command()
so that the monitor process is owned by root and not by the user.
Otherwise, on AIX at least, the monitor process shows up in ps as
belonging to the user (and can be killed by the user).

12 years agoFor PERM_ROOT when using setreuid(), only set the euid to 0 prior
Todd C. Miller [Mon, 6 Feb 2012 18:29:19 +0000 (13:29 -0500)]
For PERM_ROOT when using setreuid(), only set the euid to 0 prior
to the call to setuid(0) if the current euid is non-zero.  This
effectively restores the state of things prior to rev 7bfeb629fccb.
Fixes a problem on AIX where LDR_PRELOAD was not being honored for
the command being executed.

12 years agoMake a copy of the struct passwd in exec_setup() to make sure nothing
Todd C. Miller [Mon, 6 Feb 2012 15:56:39 +0000 (10:56 -0500)]
Make a copy of the struct passwd in exec_setup() to make sure nothing
in the policy init modifies it.

12 years agoupdate copyright
Todd C. Miller [Sun, 5 Feb 2012 18:35:20 +0000 (13:35 -0500)]
update copyright

12 years agog/c now-unused debug subsystems
Todd C. Miller [Sun, 5 Feb 2012 15:17:26 +0000 (10:17 -0500)]
g/c now-unused debug subsystems

12 years agoEnumerate the debug subsystems used by sudo and sudoers.
Todd C. Miller [Sun, 5 Feb 2012 15:17:09 +0000 (10:17 -0500)]
Enumerate the debug subsystems used by sudo and sudoers.

12 years agoNormally, sudo disables core dumps while it is running. This
Todd C. Miller [Fri, 3 Feb 2012 19:57:03 +0000 (14:57 -0500)]
Normally, sudo disables core dumps while it is running.  This
behavior can now be modified at run time with a line in sudo.conf
like "Set disable_coredumps false"

12 years agoMention Spanish translation
Todd C. Miller [Fri, 3 Feb 2012 17:31:24 +0000 (12:31 -0500)]
Mention Spanish translation

12 years agoMake sure we don't try to fall back to using the conversation
Todd C. Miller [Fri, 3 Feb 2012 17:30:07 +0000 (12:30 -0500)]
Make sure we don't try to fall back to using the conversation
function for debugging in the main sudo process if we are unable
to open the debug file.

12 years agoAdd sudo Spanish translation from translationproject.org
Todd C. Miller [Fri, 3 Feb 2012 14:15:14 +0000 (09:15 -0500)]
Add sudo Spanish translation from translationproject.org

12 years agoBetter debug subsystem usage
Todd C. Miller [Thu, 2 Feb 2012 16:28:33 +0000 (11:28 -0500)]
Better debug subsystem usage

12 years agoRemove duplicate function prototypes
Todd C. Miller [Thu, 2 Feb 2012 16:28:19 +0000 (11:28 -0500)]
Remove duplicate function prototypes

12 years agoError out if user specified --with-pam but we can't find the headers
Todd C. Miller [Wed, 1 Feb 2012 16:27:50 +0000 (11:27 -0500)]
Error out if user specified --with-pam but we can't find the headers
or library.  Also throw an error if the headers are present but the
library is not and vice versa.

12 years agoFix the sudoers permission check when the expected sudoers mode is
Todd C. Miller [Tue, 31 Jan 2012 21:24:57 +0000 (16:24 -0500)]
Fix the sudoers permission check when the expected sudoers mode is
owner-writable.

12 years agoVerify that we can link executables built with -D_FORTIFY_SOURCE
Todd C. Miller [Mon, 30 Jan 2012 19:09:17 +0000 (14:09 -0500)]
Verify that we can link executables built with -D_FORTIFY_SOURCE
before using it.

12 years agoFix potential off-by-one when making a copy of the environment for
Todd C. Miller [Mon, 30 Jan 2012 18:49:24 +0000 (13:49 -0500)]
Fix potential off-by-one when making a copy of the environment for
LD_PRELOAD insertion.  Fixes bug #534

12 years agoAdd rudimentary check for _FORTIFY_SOURCE support by checking for
Todd C. Miller [Mon, 30 Jan 2012 15:09:23 +0000 (10:09 -0500)]
Add rudimentary check for _FORTIFY_SOURCE support by checking for
__sprintf_chk, one of the functions used by gcc to support it.

12 years agoUse AC_HEADER_STDBOOL instead of checking for stdbool.h ourselves.
Todd C. Miller [Mon, 30 Jan 2012 14:28:11 +0000 (09:28 -0500)]
Use AC_HEADER_STDBOOL instead of checking for stdbool.h ourselves.

12 years agoregen
Todd C. Miller [Sun, 29 Jan 2012 19:48:20 +0000 (14:48 -0500)]
regen

12 years agoThe change in 818e82ecbbfc that caused to exit when the monitor
Todd C. Miller [Wed, 25 Jan 2012 21:29:08 +0000 (16:29 -0500)]
The change in 818e82ecbbfc that caused to exit when the monitor
dies created a race condition between the monitor exiting and the
status being read.  All we really want to do is make sure that
select() notifies us that there is a status change when the monitor
dies unexpectedly so shutdown the socketpair connected to the monitor
for writing when it dies.  That way we can still read the status
that is pending on the socket and select() on Linux will tell us
that the fd is ready.

12 years agoRefactor disable_execute() and my_execve() into exec_common.c for
Todd C. Miller [Wed, 25 Jan 2012 19:58:02 +0000 (14:58 -0500)]
Refactor disable_execute() and my_execve() into exec_common.c for
use by sesh.c.  This fixes NOEXEC when SELinux is used.  Instead
of disabling exec in exec_setup(), disable it immediately before
executing the command.  Adapted from a diff by Arno Schuring.

12 years agoAdd custom version of AC_CHECK_LIB that uses the extra libs in the
Todd C. Miller [Fri, 20 Jan 2012 15:28:56 +0000 (10:28 -0500)]
Add custom version of AC_CHECK_LIB that uses the extra libs in the
cache value name.  With this we no longer need to rely on a modified
version of autoconf.

13 years agoBetter handling of network functions that need -lsocket -lnsl
Todd C. Miller [Thu, 19 Jan 2012 19:19:37 +0000 (14:19 -0500)]
Better handling of network functions that need -lsocket -lnsl

13 years agoWhen setting up the execution environment, set groups before gid/egid
Todd C. Miller [Thu, 19 Jan 2012 17:55:23 +0000 (12:55 -0500)]
When setting up the execution environment, set groups before gid/egid
like sudo 1.7 did.

13 years agoRemove "WARNING: unable to find foo() trying -lsocket -lnsl"
Todd C. Miller [Thu, 19 Jan 2012 16:09:22 +0000 (11:09 -0500)]
Remove "WARNING: unable to find foo() trying -lsocket -lnsl"

13 years agoFor "sudo -g" prepend the specified group ID to the beginning of
Todd C. Miller [Thu, 19 Jan 2012 16:03:22 +0000 (11:03 -0500)]
For "sudo -g" prepend the specified group ID to the beginning of
the groups list.  This matches BSD convention where the effective
gid is the first entry in the group list.  This is required on newer
FreeBSD where the effective gid is not tracked separately and thus
setgroups() changes the egid if this convention is not followed.
Fixes bug #532

13 years agoFix sh warning; use "test" instead of "["
Todd C. Miller [Tue, 17 Jan 2012 18:07:35 +0000 (13:07 -0500)]
Fix sh warning; use "test" instead of "["

13 years agoWhen not logging I/O, use a signal handler that only forwards SIGINT,
Todd C. Miller [Tue, 17 Jan 2012 15:27:33 +0000 (10:27 -0500)]
When not logging I/O, use a signal handler that only forwards SIGINT,
SIGQUIT and SIGHUP when they are user-generated signals.  Fixes a
race in the non-I/O logging path where the command may receive two
keyboard-generated signals; one from the kernel and one from the
sudo process.

13 years agoBack out change that put the command in its own pgrp when not logging
Todd C. Miller [Tue, 17 Jan 2012 15:25:44 +0000 (10:25 -0500)]
Back out change that put the command in its own pgrp when not logging
I/O.  It causes problems with pipelines.

13 years agoOnly run compat regress tests on compat objects we actually build.
Todd C. Miller [Mon, 16 Jan 2012 15:40:11 +0000 (10:40 -0500)]
Only run compat regress tests on compat objects we actually build.
Fixes "make check" in the compat dir for systems that don't implement
character classes in fnmatch() or glob().  Bug #531

13 years agoUpdate po files from translationproject.org
Todd C. Miller [Sat, 14 Jan 2012 12:19:43 +0000 (07:19 -0500)]
Update po files from translationproject.org

13 years agoInclude parent directories in case they don't already exist. This
Todd C. Miller [Fri, 13 Jan 2012 14:49:20 +0000 (09:49 -0500)]
Include parent directories in case they don't already exist.  This
fixes a directory permissions problem with the AIX package when the
/usr/local directories don't already exist.

13 years agosync with git version
Todd C. Miller [Fri, 13 Jan 2012 14:06:08 +0000 (09:06 -0500)]
sync with git version

13 years agoregen dependencies
Todd C. Miller [Fri, 13 Jan 2012 11:02:17 +0000 (06:02 -0500)]
regen dependencies

13 years agoMove tty name lookup code to its own file.
Todd C. Miller [Fri, 13 Jan 2012 11:01:58 +0000 (06:01 -0500)]
Move tty name lookup code to its own file.

13 years agoUpdate with latest sudo 1.8.4 changes.
Todd C. Miller [Thu, 12 Jan 2012 21:42:28 +0000 (16:42 -0500)]
Update with latest sudo 1.8.4 changes.

13 years agoRemove obsolete template for HAVE_TIMESPEC
Todd C. Miller [Thu, 12 Jan 2012 18:25:04 +0000 (13:25 -0500)]
Remove obsolete template for HAVE_TIMESPEC

13 years agoAdd a check for devname() returning a fully-qualified pathname.
Todd C. Miller [Thu, 12 Jan 2012 12:50:40 +0000 (07:50 -0500)]
Add a check for devname() returning a fully-qualified pathname.
None of the devname() implementations do this today but you never
know when this might change.

13 years agoFor "visudo -c" also list include files that were checked when
Todd C. Miller [Wed, 11 Jan 2012 21:25:39 +0000 (16:25 -0500)]
For "visudo -c" also list include files that were checked when
everything is OK.

13 years agoThe device name returned by devname() does not include the /dev/
Todd C. Miller [Wed, 11 Jan 2012 20:38:18 +0000 (15:38 -0500)]
The device name returned by devname() does not include the /dev/
prefix so we need to add it ourselves.

13 years agoAdd debug warning if KERN_PROC sysctl fails or devname() can't
Todd C. Miller [Wed, 11 Jan 2012 19:09:16 +0000 (14:09 -0500)]
Add debug warning if KERN_PROC sysctl fails or devname() can't
resolve the tty device to a name.

13 years agoThe result of writev() is never checked so just cast to NULL.
Todd C. Miller [Wed, 11 Jan 2012 18:09:09 +0000 (13:09 -0500)]
The result of writev() is never checked so just cast to NULL.

13 years agoUpdate Esperanto, Finnish, Polish and Ukrainian translations from
Todd C. Miller [Wed, 11 Jan 2012 12:09:25 +0000 (07:09 -0500)]
Update Esperanto, Finnish, Polish and Ukrainian translations from
translationproject.org.

13 years agoAdd support for determining tty via sysctl on other BSD variants.
Todd C. Miller [Tue, 10 Jan 2012 21:49:24 +0000 (16:49 -0500)]
Add support for determining tty via sysctl on other BSD variants.

13 years agoOnly check for struct kinfo_proc.ki_tdev on systems that support sysctl.
Todd C. Miller [Tue, 10 Jan 2012 18:02:55 +0000 (13:02 -0500)]
Only check for struct kinfo_proc.ki_tdev on systems that support sysctl.

13 years agoFor FreeBSD, try the KERN_PROC_PID sysctl() first, falling back on
Todd C. Miller [Tue, 10 Jan 2012 18:02:41 +0000 (13:02 -0500)]
For FreeBSD, try the KERN_PROC_PID sysctl() first, falling back on
ttyname() of std{in,out,err}.

13 years agoOn newer FreeBSD we can get the parent's tty name via sysctl().
Todd C. Miller [Mon, 9 Jan 2012 21:08:58 +0000 (16:08 -0500)]
On newer FreeBSD we can get the parent's tty name via sysctl().

13 years agoInclude locale.h
Todd C. Miller [Mon, 9 Jan 2012 20:34:05 +0000 (15:34 -0500)]
Include locale.h

13 years agoSilence a gcc warning.
Todd C. Miller [Mon, 9 Jan 2012 20:33:51 +0000 (15:33 -0500)]
Silence a gcc warning.

13 years agoNeed to include gettext.h and sudo_debug.h; from John Hein
Todd C. Miller [Mon, 9 Jan 2012 17:36:43 +0000 (12:36 -0500)]
Need to include gettext.h and sudo_debug.h; from John Hein

13 years agoInitialize the debug framework from the I/O plugin too.
Todd C. Miller [Mon, 9 Jan 2012 16:00:59 +0000 (11:00 -0500)]
Initialize the debug framework from the I/O plugin too.

13 years agoEnable debugging via sudo.conf.
Todd C. Miller [Sun, 8 Jan 2012 17:11:14 +0000 (12:11 -0500)]
Enable debugging via sudo.conf.

13 years agoUse SUDO_DEBUG_ALIAS for alias checking functions.
Todd C. Miller [Sat, 7 Jan 2012 17:24:43 +0000 (12:24 -0500)]
Use SUDO_DEBUG_ALIAS for alias checking functions.

13 years agoMore complete test for getaddrinfo() that doesn't rely on the network
Todd C. Miller [Sat, 7 Jan 2012 17:22:43 +0000 (12:22 -0500)]
More complete test for getaddrinfo() that doesn't rely on the network
libraries already being added to LIBS.

13 years agoAdd debug support.
Todd C. Miller [Sat, 7 Jan 2012 01:10:41 +0000 (20:10 -0500)]
Add debug support.

13 years agoNeed -lsocket -lnsl for getaddrinfo(3) on Solaris at least.
Todd C. Miller [Sat, 7 Jan 2012 01:02:12 +0000 (20:02 -0500)]
Need -lsocket -lnsl for getaddrinfo(3) on Solaris at least.

13 years agoInclude errno.h and missing.h
Todd C. Miller [Sat, 7 Jan 2012 00:28:08 +0000 (19:28 -0500)]
Include errno.h and missing.h

13 years agoignore doc/varsub
Todd C. Miller [Fri, 6 Jan 2012 20:27:30 +0000 (15:27 -0500)]
ignore doc/varsub

13 years agoUpdate copyright year.
Todd C. Miller [Fri, 6 Jan 2012 19:23:55 +0000 (14:23 -0500)]
Update copyright year.

13 years agoUpdate for sudo 1.8.4
Todd C. Miller [Fri, 6 Jan 2012 19:19:53 +0000 (14:19 -0500)]
Update for sudo 1.8.4

13 years agoregen pot files
Todd C. Miller [Fri, 6 Jan 2012 18:49:16 +0000 (13:49 -0500)]
regen pot files

13 years agoEnable debugging via sudo.conf.
Todd C. Miller [Fri, 6 Jan 2012 18:13:04 +0000 (13:13 -0500)]
Enable debugging via sudo.conf.

13 years agoEnable debugging via sudo.conf.
Todd C. Miller [Fri, 6 Jan 2012 15:58:13 +0000 (10:58 -0500)]
Enable debugging via sudo.conf.

13 years agoAllow "visudo -c" to work when we only have read-only access to the
Todd C. Miller [Fri, 6 Jan 2012 15:54:30 +0000 (10:54 -0500)]
Allow "visudo -c" to work when we only have read-only access to the
sudoers include files.

13 years agoMention the CONTRIBUTORS file, not HISTORY in AUTHOR section. Add
Todd C. Miller [Fri, 6 Jan 2012 15:05:47 +0000 (10:05 -0500)]
Mention the CONTRIBUTORS file, not HISTORY in AUTHOR section.  Add
HISTORY section in sudo that points to HISTORY file.

13 years agoDocument Debug setting in sudo.conf and debug_flags in plugin.
Todd C. Miller [Fri, 6 Jan 2012 14:44:41 +0000 (09:44 -0500)]
Document Debug setting in sudo.conf and debug_flags in plugin.

13 years agoDo not include GLOB_MARK in the flags we pass to glob(3). Fixes a
Todd C. Miller [Thu, 5 Jan 2012 20:54:00 +0000 (15:54 -0500)]
Do not include GLOB_MARK in the flags we pass to glob(3).  Fixes a
bug where a pattern like "/usr/*" include /usr/bin/ in the results,
which would be incorrectly be interpreted as if the sudoers file
had specified a directory.  From Vitezslav Cizek.

13 years agoAdd --enable-kerb5-instance configure option to allow people using
Todd C. Miller [Thu, 5 Jan 2012 20:39:05 +0000 (15:39 -0500)]
Add --enable-kerb5-instance configure option to allow people using
Kerberos V authentication to use a custom instance.  Adapted from
a diff by Michael E Burr.

13 years agoRemove -D debug_level option.
Todd C. Miller [Thu, 5 Jan 2012 16:48:24 +0000 (11:48 -0500)]
Remove -D debug_level option.

13 years agoUpdate copyright year.
Todd C. Miller [Thu, 5 Jan 2012 16:47:22 +0000 (11:47 -0500)]
Update copyright year.

13 years agoparse_error is now bool, not int
Todd C. Miller [Wed, 4 Jan 2012 20:45:27 +0000 (15:45 -0500)]
parse_error is now bool, not int

13 years agoPrint a more sensible error if yyparse() returns non-zero but
Todd C. Miller [Wed, 4 Jan 2012 20:45:03 +0000 (15:45 -0500)]
Print a more sensible error if yyparse() returns non-zero but
yyerror() was not called.

13 years agoReplace y.tab.c with the correct filename in #line directives.
Todd C. Miller [Wed, 4 Jan 2012 20:35:49 +0000 (15:35 -0500)]
Replace y.tab.c with the correct filename in #line directives.

13 years agoWhen trying to determine the tty, fall back on /proc/ppid/fd/{0,1,2}
Todd C. Miller [Tue, 3 Jan 2012 15:47:33 +0000 (10:47 -0500)]
When trying to determine the tty, fall back on /proc/ppid/fd/{0,1,2}
if the main process's fds 0-2 are not hooked up to a tty.  Adapted
from a diff by Zdenek Behan.

13 years agoWhen not logging I/O, put command in its own pgrp and make that the
Todd C. Miller [Tue, 3 Jan 2012 15:06:07 +0000 (10:06 -0500)]
When not logging I/O, put command in its own pgrp and make that the
controlling pgrp if the command is in the foreground.  Fixes a race
in the non-I/O logging path where the command may receive two
keyboard-generated signals; one from the kernel and one from the
sudo process.

13 years agoQuiet a bogus gcc warning.
Todd C. Miller [Tue, 20 Dec 2011 18:50:48 +0000 (13:50 -0500)]
Quiet a bogus gcc warning.

13 years agoFix warnings related to sudo.conf accessors.
Todd C. Miller [Tue, 20 Dec 2011 18:39:19 +0000 (13:39 -0500)]
Fix warnings related to sudo.conf accessors.

13 years agoSeparate sudo.conf parsing from plugin loading and move the parse
Todd C. Miller [Tue, 20 Dec 2011 13:55:13 +0000 (08:55 -0500)]
Separate sudo.conf parsing from plugin loading and move the parse
functions into the common lib so that visudo, etc. can use them.

13 years agoSeparate sudo.conf parsing from plugin loading and move the parse
Todd C. Miller [Tue, 20 Dec 2011 13:50:07 +0000 (08:50 -0500)]
Separate sudo.conf parsing from plugin loading and move the parse
functions into the common lib so that visudo, etc. can use them.

13 years agoRemove support for noexec_file in sudoers and the plugin API
Todd C. Miller [Tue, 20 Dec 2011 13:40:55 +0000 (08:40 -0500)]
Remove support for noexec_file in sudoers and the plugin API

13 years agoDon't dump interfaces if there are none.
Todd C. Miller [Tue, 20 Dec 2011 13:39:01 +0000 (08:39 -0500)]
Don't dump interfaces if there are none.