IFC @ r222830

This commit is contained in:
Peter Grehan 2011-06-28 06:26:03 +00:00
commit a5615c9044
2649 changed files with 130351 additions and 48775 deletions

View File

@ -19,7 +19,7 @@
# kernel - buildkernel + installkernel.
# kernel-toolchain - Builds the subset of world necessary to build a kernel
# doxygen - Build API documentation of the kernel, needs doxygen.
# update - Convenient way to update your source tree (cvs).
# update - Convenient way to update your source tree(s).
# check-old - List obsolete directories/files/libraries.
# check-old-dirs - List obsolete directories.
# check-old-files - List obsolete files.

View File

@ -12,6 +12,7 @@
# -DNO_KERNELOBJ do not run ${MAKE} obj in ${MAKE} buildkernel
# -DNO_PORTSUPDATE do not update ports in ${MAKE} update
# -DNO_DOCUPDATE do not update doc in ${MAKE} update
# -DNO_WWWUPDATE do not update www in ${MAKE} update
# -DNO_CTF do not run the DTrace CTF conversion tools on built objects
# LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list
# TARGET="machine" to crossbuild world for a different machine type
@ -904,7 +905,7 @@ doxygen:
#
# update
#
# Update the source tree, by running cvsup and/or running cvs to update to the
# Update the source tree(s), by running cvsup/cvs/svn to update to the
# latest copy.
#
update:
@ -927,6 +928,9 @@ update:
.if defined(DOCSUPFILE) && !defined(NO_DOCUPDATE)
@${SUP} ${SUPFLAGS} ${DOCSUPFILE}
.endif
.if defined(WWWSUPFILE) && !defined(NO_WWWUPDATE)
@${SUP} ${SUPFLAGS} ${WWWSUPFILE}
.endif
.endif
.if defined(CVS_UPDATE)
@cd ${.CURDIR} ; \

View File

@ -22,9 +22,48 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.x IS SLOW:
machines to maximize performance. (To disable malloc debugging, run
ln -s aj /etc/malloc.conf.)
20110608:
The following sysctls and tunables are retired on x86 platforms:
machdep.hlt_cpus
machdep.hlt_logical_cpus
The following sysctl is retired:
machdep.hyperthreading_allowed
The sysctls were supposed to provide a way to dynamically offline and
online selected CPUs on x86 platforms, but the implementation has not
been reliable especially with SCHED_ULE scheduler.
machdep.hyperthreading_allowed tunable is still available to ignore
hyperthreading CPUs at OS level.
Individual CPUs can be disabled using hint.lapic.X.disabled tunable,
where X is an APIC ID of a CPU. Be advised, though, that disabling
CPUs in non-uniform fashion will result in non-uniform topology and
may lead to sub-optimal system performance with SCHED_ULE, which is
a default scheduler.
20110607:
cpumask_t type is retired and cpuset_t is used in order to describe
a mask of CPUs.
20110531:
Changes to ifconfig(8) for dynamic address family detection mandate
that you are running a kernel of 20110525 or later. Make sure to
follow the update procedure to boot a new kernel before installing
world.
20110513:
Support for sun4v architecture is officially dropped
20110503:
Several KPI breaking changes have been committed to the mii(4) layer,
the PHY drivers and consequently some Ethernet drivers using mii(4).
This means that miibus.ko and the modules of the affected Ethernet
drivers need to be recompiled.
Note to kernel developers: Given that the OUI bit reversion problem
was fixed as part of these changes all mii(4) commits related to OUIs,
i.e. to sys/dev/mii/miidevs, PHY driver probing and vendor specific
handling, no longer can be merged verbatim to stable/8 and previous
branches.
20110430:
Users of the Atheros AR71xx SoC code now need to add 'device ar71xx_pci'
into their kernel configurations along with 'device pci'.

View File

@ -70,6 +70,7 @@ void pmem(KINFO *, VARENT *);
void pri(KINFO *, VARENT *);
void printheader(void);
void priorityr(KINFO *, VARENT *);
void egroupname(KINFO *, VARENT *);
void rgroupname(KINFO *, VARENT *);
void runame(KINFO *, VARENT *);
void rvar(KINFO *, VARENT *);
@ -78,6 +79,7 @@ int s_cputime(KINFO *);
int s_label(KINFO *);
int s_loginclass(KINFO *);
int s_logname(KINFO *);
int s_egroupname(KINFO *);
int s_rgroupname(KINFO *);
int s_runame(KINFO *);
int s_systime(KINFO *);

View File

@ -88,12 +88,19 @@ static VAR var[] = {
{"cpu", "CPU", NULL, 0, kvar, NULL, 3, KOFF(ki_estcpu), UINT, "d",
0},
{"cputime", "", "time", 0, NULL, NULL, 0, 0, CHAR, NULL, 0},
{"egid", "", "gid", 0, NULL, NULL, 0, 0, CHAR, NULL, 0},
{"egroup", "", "group", 0, NULL, NULL, 0, 0, CHAR, NULL, 0},
{"emul", "EMUL", NULL, LJUST, emulname, NULL, EMULLEN, 0, CHAR,
NULL, 0},
{"etime", "ELAPSED", NULL, USER, elapsed, NULL, 12, 0, CHAR, NULL, 0},
{"etimes", "ELAPSED", NULL, USER, elapseds, NULL, 12, 0, CHAR, NULL, 0},
{"euid", "", "uid", 0, NULL, NULL, 0, 0, CHAR, NULL, 0},
{"f", "F", NULL, 0, kvar, NULL, 8, KOFF(ki_flag), INT, "x", 0},
{"flags", "", "f", 0, NULL, NULL, 0, 0, CHAR, NULL, 0},
{"gid", "GID", NULL, 0, kvar, NULL, UIDLEN, KOFF(ki_groups),
UINT, UIDFMT, 0},
{"group", "GROUP", NULL, LJUST, egroupname, s_egroupname,
USERLEN, 0, CHAR, NULL, 0},
{"ignored", "", "sigignore", 0, NULL, NULL, 0, 0, CHAR, NULL, 0},
{"inblk", "INBLK", NULL, USER, rvar, NULL, 4, ROFF(ru_inblock), LONG,
"ld", 0},

View File

@ -340,6 +340,22 @@ s_uname(KINFO *k)
return (strlen(user_from_uid(k->ki_p->ki_uid, 0)));
}
void
egroupname(KINFO *k, VARENT *ve)
{
VAR *v;
v = ve->var;
(void)printf("%-*s", v->width,
group_from_gid(k->ki_p->ki_groups[0], 0));
}
int
s_egroupname(KINFO *k)
{
return (strlen(group_from_gid(k->ki_p->ki_groups[0], 0)));
}
void
rgroupname(KINFO *k, VARENT *ve)
{

View File

@ -29,7 +29,7 @@
.\" @(#)ps.1 8.3 (Berkeley) 4/18/94
.\" $FreeBSD$
.\"
.Dd April 18, 2011
.Dd June 14, 2011
.Dt PS 1
.Os
.Sh NAME
@ -502,6 +502,12 @@ elapsed running time, in decimal integer seconds
.It Cm flags
the process flags, in hexadecimal (alias
.Cm f )
.It Cm gid
effective group ID (alias
.Cm egid )
.It Cm group
group name (from egid) (alias
.Cm egroup )
.It Cm inblk
total blocks read (alias
.Cm inblock )
@ -629,7 +635,8 @@ process pointer
.It Cm ucomm
name to be used for accounting
.It Cm uid
effective user ID
effective user ID (alias
.Cm euid )
.It Cm upr
scheduling priority on return from system call (alias
.Cm usrpri )

View File

@ -27,10 +27,8 @@ programs is:
mkbuiltins builtins builtins.h builtins.c
mkinit *.c init.c
mknodes nodetypes nodes.h nodes.c
mksignames - signames.h signames.c
mksyntax - syntax.h syntax.c
mktokens - token.h
bltin/mkexpr unary_op binary_op operators.h operators.c
There are undoubtedly too many of these. Mkinit searches all the
C source files for entries looking like:
@ -64,14 +62,6 @@ tion:
Preprocessor #define statements are copied to init.c without any
special action to request this.
INDENTATION: The ash source is indented in multiples of six
spaces. The only study that I have heard of on the subject con-
cluded that the optimal amount to indent is in the range of four
to six spaces. I use six spaces since it is not too big a jump
from the widely used eight spaces. If you really hate six space
indentation, use the adjind (source included) program to change
it to something else.
EXCEPTIONS: Code for dealing with exceptions appears in
exceptions.c. The C language doesn't include exception handling,
so I implement it using setjmp and longjmp. The global variable
@ -115,7 +105,7 @@ repeatedly parses and executes commands.
OPTIONS.C: This file contains the option processing code. It is
called from main to parse the shell arguments when the shell is
invoked, and it also contains the set builtin. The -i and -j op-
invoked, and it also contains the set builtin. The -i and -m op-
tions (the latter turns on job control) require changes in signal
handling. The routines setjobctl (in jobs.c) and setinteractive
(in trap.c) are called to handle changes to these options.
@ -123,10 +113,11 @@ handling. The routines setjobctl (in jobs.c) and setinteractive
PARSING: The parser code is all in parser.c. A recursive des-
cent parser is used. Syntax tables (generated by mksyntax) are
used to classify characters during lexical analysis. There are
three tables: one for normal use, one for use when inside single
quotes, and one for use when inside double quotes. The tables
are machine dependent because they are indexed by character vari-
ables and the range of a char varies from machine to machine.
four tables: one for normal use, one for use when inside single
quotes and dollar single quotes, one for use when inside double
quotes and one for use in arithmetic. The tables are machine
dependent because they are indexed by character variables and
the range of a char varies from machine to machine.
PARSE OUTPUT: The output of the parser consists of a tree of
nodes. The various types of nodes are defined in the file node-
@ -242,12 +233,7 @@ The routine shellexec is the interface to the exec system call.
EXPAND.C: Arguments are processed in three passes. The first
(performed by the routine argstr) performs variable and command
substitution. The second (ifsbreakup) performs word splitting
and the third (expandmeta) performs file name generation. If the
"/u" directory is simulated, then when "/u/username" is replaced
by the user's home directory, the flag "didudir" is set. This
tells the cd command that it should print out the directory name,
just as it would if the "/u" directory were implemented using
symbolic links.
and the third (expandmeta) performs file name generation.
VAR.C: Variables are stored in a hash table. Probably we should
switch to extensible hashing. The variable name is stored in the
@ -292,14 +278,7 @@ when the program is linked into ash. This #define should appear
before bltin.h is included; bltin.h will #undef main if the pro-
gram is to be compiled stand-alone.
CD.C: This file defines the cd and pwd builtins. The pwd com-
mand runs /bin/pwd the first time it is invoked (unless the user
has already done a cd to an absolute pathname), but then
remembers the current directory and updates it when the cd com-
mand is run, so subsequent pwd commands run very fast. The main
complication in the cd command is in the docd command, which
resolves symbolic links into actual names and informs the user
where the user ended up if he crossed a symbolic link.
CD.C: This file defines the cd and pwd builtins.
SIGNALS: Trap.c implements the trap command. The routine set-
signal figures out what action should be taken when a signal is

View File

@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$");
#include "mystring.h"
#include "alias.h"
#include "options.h" /* XXX for argptr (should remove?) */
#include "builtins.h"
#define ATABSIZE 39
@ -238,7 +239,7 @@ aliascmd(int argc, char **argv)
while ((n = *++argv) != NULL) {
if ((v = strchr(n+1, '=')) == NULL) /* n+1: funny ksh stuff */
if ((ap = lookupalias(n, 0)) == NULL) {
warning("%s not found", n);
warning("%s: not found", n);
ret = 1;
} else
printalias(ap);

View File

@ -43,5 +43,3 @@ struct alias {
};
struct alias *lookupalias(const char *, int);
int aliascmd(int, char **);
int unaliascmd(int, char **);

View File

@ -36,4 +36,3 @@
arith_t arith(const char *);
void arith_lex_reset(void);
int expcmd(int, char **);

View File

@ -344,7 +344,7 @@ arith_t arith(const char *s)
* The exp(1) builtin.
*/
int
expcmd(int argc, char **argv)
letcmd(int argc, char **argv)
{
const char *p;
char *concat;

View File

@ -43,6 +43,7 @@
#include "../mystring.h"
#ifdef SHELL
#include "../output.h"
#include "builtins.h"
#define FILE struct output
#undef stdout
#define stdout out1
@ -75,7 +76,4 @@ pointer stalloc(int);
void error(const char *, ...) __printf0like(1, 2);
pid_t getjobpgrp(char *);
int echocmd(int, char **);
int testcmd(int, char **);
extern char *commandname;

View File

@ -60,7 +60,7 @@ echocmd echo
evalcmd -s eval
execcmd -s exec
exitcmd -s exit
expcmd exp let
letcmd let
exportcmd -s export -s readonly
#exprcmd expr
falsecmd false

View File

@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
#include "mystring.h"
#include "show.h"
#include "cd.h"
#include "builtins.h"
static int cdlogical(char *);
static int cdphysical(char *);
@ -86,6 +87,7 @@ cdcmd(int argc, char **argv)
struct stat statb;
int ch, phys, print = 0, getcwderr = 0;
int rc;
int errno1 = ENOENT;
optreset = 1; optind = 1; opterr = 0; /* initialize getopt */
phys = Pflag;
@ -122,7 +124,10 @@ cdcmd(int argc, char **argv)
else
dest = ".";
}
if (*dest == '/' || (path = bltinlookup("CDPATH", 1)) == NULL)
if (dest[0] == '/' ||
(dest[0] == '.' && (dest[1] == '/' || dest[1] == '\0')) ||
(dest[0] == '.' && dest[1] == '.' && (dest[2] == '/' || dest[2] == '\0')) ||
(path = bltinlookup("CDPATH", 1)) == NULL)
path = nullstr;
while ((p = padvance(&path, dest)) != NULL) {
if (stat(p, &statb) >= 0 && S_ISDIR(statb.st_mode)) {
@ -138,9 +143,11 @@ cdcmd(int argc, char **argv)
rc = docd(p, print, phys);
if (rc >= 0)
return getcwderr ? rc : 0;
if (errno != ENOENT)
errno1 = errno;
}
}
error("can't cd to %s", dest);
error("%s: %s", dest, strerror(errno1));
/*NOTREACHED*/
return 0;
}

View File

@ -30,5 +30,3 @@
*/
void pwd_init(int);
int cdcmd (int, char **);
int pwdcmd(int, char **);

View File

@ -140,7 +140,7 @@ evalcmd(int argc, char **argv)
STPUTC('\0', concat);
p = grabstackstr(concat);
}
evalstring(p, builtin_flags & EV_TESTED);
evalstring(p, builtin_flags);
} else
exitstatus = 0;
return exitstatus;
@ -165,7 +165,7 @@ evalstring(char *s, int flags)
setstackmark(&smark);
setinputstring(s, 1);
while ((n = parsecmd(0)) != NEOF) {
if (n != NULL) {
if (n != NULL && !nflag) {
if (flags_exit && preadateof())
evaltree(n, flags | EV_EXIT);
else
@ -386,6 +386,14 @@ evalcase(union node *n, int flags)
for (cp = n->ncase.cases ; cp && evalskip == 0 ; cp = cp->nclist.next) {
for (patp = cp->nclist.pattern ; patp ; patp = patp->narg.next) {
if (casematch(patp, arglist.list->text)) {
while (cp->nclist.next &&
cp->type == NCLISTFALLTHRU) {
if (evalskip != 0)
break;
evaltree(cp->nclist.body,
flags & ~EV_EXIT);
cp = cp->nclist.next;
}
if (evalskip == 0) {
evaltree(cp->nclist.body, flags);
}
@ -409,6 +417,7 @@ evalsubshell(union node *n, int flags)
struct job *jp;
int backgnd = (n->type == NBACKGND);
oexitstatus = exitstatus;
expredir(n->nredir.redirect);
if ((!backgnd && flags & EV_EXIT && !have_traps()) ||
forkshell(jp = makejob(n, 1), n, backgnd) == 0) {
@ -436,6 +445,7 @@ evalredir(union node *n, int flags)
struct jmploc *savehandler;
volatile int in_redirect = 1;
oexitstatus = exitstatus;
expredir(n->nredir.redirect);
savehandler = handler;
if (setjmp(jmploc.loc)) {
@ -478,7 +488,6 @@ expredir(union node *n)
for (redir = n ; redir ; redir = redir->nfile.next) {
struct arglist fn;
fn.lastp = &fn.list;
oexitstatus = exitstatus;
switch (redir->type) {
case NFROM:
case NTO:
@ -570,14 +579,8 @@ evalpipe(union node *n)
static int
is_valid_fast_cmdsubst(union node *n)
{
union node *argp;
if (n->type != NCMD)
return 0;
for (argp = n->ncmd.args ; argp ; argp = argp->narg.next)
if (expandhassideeffects(argp->narg.text))
return 0;
return 1;
return (n->type == NCMD);
}
/*
@ -595,6 +598,7 @@ evalbackcmd(union node *n, struct backcmd *result)
struct stackmark smark; /* unnecessary */
struct jmploc jmploc;
struct jmploc *savehandler;
struct localvar *savelocalvars;
setstackmark(&smark);
result->fd = -1;
@ -607,12 +611,18 @@ evalbackcmd(union node *n, struct backcmd *result)
}
if (is_valid_fast_cmdsubst(n)) {
exitstatus = oexitstatus;
savelocalvars = localvars;
localvars = NULL;
forcelocal++;
savehandler = handler;
if (setjmp(jmploc.loc)) {
if (exception == EXERROR || exception == EXEXEC)
exitstatus = 2;
else if (exception != 0) {
handler = savehandler;
forcelocal--;
poplocalvars();
localvars = savelocalvars;
longjmp(handler->loc, 1);
}
} else {
@ -620,6 +630,9 @@ evalbackcmd(union node *n, struct backcmd *result)
evalcommand(n, EV_BACKCMD, result);
}
handler = savehandler;
forcelocal--;
poplocalvars();
localvars = savelocalvars;
} else {
exitstatus = 0;
if (pipe(pip) < 0)
@ -744,8 +757,9 @@ evalcommand(union node *cmd, int flags, struct backcmd *backcmd)
/* Print the command if xflag is set. */
if (xflag) {
char sep = 0;
const char *p;
out2str(ps4val());
const char *p, *ps4;
ps4 = expandstr(ps4val());
out2str(ps4 != NULL ? ps4 : ps4val());
for (sp = varlist.list ; sp ; sp = sp->next) {
if (sep != 0)
out2c(' ');
@ -880,14 +894,13 @@ evalcommand(union node *cmd, int flags, struct backcmd *backcmd)
}
/* Fork off a child process if necessary. */
if (cmd->ncmd.backgnd
|| ((cmdentry.cmdtype == CMDNORMAL || cmdentry.cmdtype == CMDUNKNOWN)
if (((cmdentry.cmdtype == CMDNORMAL || cmdentry.cmdtype == CMDUNKNOWN)
&& ((flags & EV_EXIT) == 0 || have_traps()))
|| ((flags & EV_BACKCMD) != 0
&& (cmdentry.cmdtype != CMDBUILTIN ||
!safe_builtin(cmdentry.u.index, argc, argv)))) {
jp = makejob(cmd, 1);
mode = cmd->ncmd.backgnd;
mode = FORK_FG;
if (flags & EV_BACKCMD) {
mode = FORK_NOJOB;
if (pipe(pip) < 0)
@ -902,6 +915,7 @@ evalcommand(union node *cmd, int flags, struct backcmd *backcmd)
dup2(pip[1], 1);
close(pip[1]);
}
flags &= ~EV_BACKCMD;
}
flags |= EV_EXIT;
}
@ -1053,8 +1067,7 @@ evalcommand(union node *cmd, int flags, struct backcmd *backcmd)
backcmd->fd = pip[0];
close(pip[1]);
backcmd->jp = jp;
} else
exitstatus = 0;
}
out:
if (lastarg)

View File

@ -51,19 +51,10 @@ struct backcmd { /* result of evalbackcmd */
#define EV_TESTED 02 /* exit status is checked; ignore -e flag */
#define EV_BACKCMD 04 /* command executing within back quotes */
int evalcmd(int, char **);
void evalstring(char *, int);
union node; /* BLETCH for ansi C */
void evaltree(union node *, int);
void evalbackcmd(union node *, struct backcmd *);
int bltincmd(int, char **);
int breakcmd(int, char **);
int returncmd(int, char **);
int falsecmd(int, char **);
int truecmd(int, char **);
int execcmd(int, char **);
int timescmd(int, char **);
int commandcmd(int, char **);
/* in_function returns nonzero if we are currently evaluating a function */
#define in_function() funcnest

View File

@ -66,7 +66,6 @@ extern int exerrno; /* last exec error */
void shellexec(char **, char **, const char *, int) __dead2;
char *padvance(const char **, const char *);
int hashcmd(int, char **);
void find_command(const char *, struct cmdentry *, int, const char *);
int find_builtin(const char *, int *);
void hashcd(void);
@ -75,5 +74,4 @@ void addcmdentry(const char *, struct cmdentry *);
void defun(const char *, union node *);
int unsetfunc(const char *);
int typecmd_impl(int, char **, int, const char *);
int typecmd(int, char **);
void clearcmdentry(void);

View File

@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$");
#include <string.h>
#include <unistd.h>
#include <wchar.h>
#include <wctype.h>
/*
* Routines to expand arguments to commands. We have to deal with
@ -76,6 +77,7 @@ __FBSDID("$FreeBSD$");
#include "mystring.h"
#include "arith.h"
#include "show.h"
#include "builtins.h"
/*
* Structure specifying which parts of the string should be searched
@ -174,6 +176,7 @@ expandarg(union node *arg, struct arglist *arglist, int flag)
ifslastp = NULL;
argstr(arg->narg.text, flag);
if (arglist == NULL) {
STACKSTRNUL(expdest);
return; /* here document expanded */
}
STPUTC('\0', expdest);
@ -761,7 +764,8 @@ evalvar(char *p, int flag)
break;
record:
recordregion(startloc, expdest - stackblock(),
varflags & VSQUOTE);
varflags & VSQUOTE || (ifsset() && ifsval()[0] == '\0' &&
(*var == '@' || *var == '*')));
break;
case VSPLUS:
@ -947,7 +951,9 @@ varvalue(char *name, int quoted, int subtype, int flag)
sep = ' ';
for (ap = shellparam.p ; (p = *ap++) != NULL ; ) {
strtodest(p, flag, subtype, quoted);
if (*ap && sep)
if (!*ap)
break;
if (sep || (flag & EXP_FULL && !quoted && **ap != '\0'))
STPUTC(sep, expdest);
}
break;
@ -1395,6 +1401,36 @@ get_wc(const char **p)
}
/*
* See if a character matches a character class, starting at the first colon
* of "[:class:]".
* If a valid character class is recognized, a pointer to the next character
* after the final closing bracket is stored into *end, otherwise a null
* pointer is stored into *end.
*/
static int
match_charclass(const char *p, wchar_t chr, const char **end)
{
char name[20];
const char *nameend;
wctype_t cclass;
*end = NULL;
p++;
nameend = strstr(p, ":]");
if (nameend == NULL || nameend - p >= sizeof(name) || nameend == p)
return 0;
memcpy(name, p, nameend - p);
name[nameend - p] = '\0';
*end = nameend + 2;
cclass = wctype(name);
/* An unknown class matches nothing but is valid nevertheless. */
if (cclass == 0)
return 0;
return iswctype(chr, cclass);
}
/*
* Returns true if the pattern matches the string.
*/
@ -1402,7 +1438,7 @@ get_wc(const char **p)
int
patmatch(const char *pattern, const char *string, int squoted)
{
const char *p, *q;
const char *p, *q, *end;
char c;
wchar_t wc, wc2;
@ -1426,7 +1462,7 @@ patmatch(const char *pattern, const char *string, int squoted)
if (localeisutf8)
wc = get_wc(&q);
else
wc = *q++;
wc = (unsigned char)*q++;
if (wc == '\0')
return 0;
break;
@ -1483,13 +1519,18 @@ patmatch(const char *pattern, const char *string, int squoted)
if (localeisutf8)
chr = get_wc(&q);
else
chr = *q++;
chr = (unsigned char)*q++;
if (chr == '\0')
return 0;
c = *p++;
do {
if (c == CTLQUOTEMARK)
continue;
if (c == '[' && *p == ':') {
found |= match_charclass(p, chr, &end);
if (end != NULL)
p = end;
}
if (c == CTLESC)
c = *p++;
if (localeisutf8 && c & 0x80) {
@ -1498,7 +1539,7 @@ patmatch(const char *pattern, const char *string, int squoted)
if (wc == 0) /* bad utf-8 */
return 0;
} else
wc = c;
wc = (unsigned char)c;
if (*p == '-' && p[1] != ']') {
p++;
while (*p == CTLQUOTEMARK)
@ -1510,7 +1551,7 @@ patmatch(const char *pattern, const char *string, int squoted)
if (wc2 == 0) /* bad utf-8 */
return 0;
} else
wc2 = *p++;
wc2 = (unsigned char)*p++;
if ( collate_range_cmp(chr, wc) >= 0
&& collate_range_cmp(chr, wc2) <= 0
)
@ -1616,78 +1657,6 @@ cvtnum(int num, char *buf)
return buf;
}
/*
* Check statically if expanding a string may have side effects.
*/
int
expandhassideeffects(const char *p)
{
int c;
int arinest;
arinest = 0;
while ((c = *p++) != '\0') {
switch (c) {
case CTLESC:
p++;
break;
case CTLVAR:
c = *p++;
/* Expanding $! sets the job to remembered. */
if (*p == '!')
return 1;
if ((c & VSTYPE) == VSASSIGN)
return 1;
/*
* If we are in arithmetic, the parameter may contain
* '=' which may cause side effects. Exceptions are
* the length of a parameter and $$, $# and $? which
* are always numeric.
*/
if ((c & VSTYPE) == VSLENGTH) {
while (*p != '=')
p++;
p++;
break;
}
if ((*p == '$' || *p == '#' || *p == '?') &&
p[1] == '=') {
p += 2;
break;
}
if (arinest > 0)
return 1;
break;
case CTLBACKQ:
case CTLBACKQ | CTLQUOTE:
if (arinest > 0)
return 1;
break;
case CTLARI:
arinest++;
break;
case CTLENDARI:
arinest--;
break;
case '=':
if (*p == '=') {
/* Allow '==' operator. */
p++;
continue;
}
if (arinest > 0)
return 1;
break;
case '!': case '<': case '>':
/* Allow '!=', '<=', '>=' operators. */
if (*p == '=')
p++;
break;
}
}
return 0;
}
/*
* Do most of the work for wordexp(3).
*/

View File

@ -63,5 +63,3 @@ void expari(int);
int patmatch(const char *, const char *, int);
void rmescapes(char *);
int casematch(union node *, const char *);
int expandhassideeffects(const char *);
int wordexpcmd(int, char **);

View File

@ -59,6 +59,7 @@ __FBSDID("$FreeBSD$");
#include "error.h"
#include "eval.h"
#include "memalloc.h"
#include "builtins.h"
#define MAXHISTLOOPS 4 /* max recursions through fc */
#define DEFEDITOR "ed" /* default editor *should* be $EDITOR */

View File

@ -403,7 +403,7 @@ setinputfile(const char *fname, int push)
INTOFF;
if ((fd = open(fname, O_RDONLY)) < 0)
error("Can't open %s: %s", fname, strerror(errno));
error("cannot open %s: %s", fname, strerror(errno));
if (fd < 10) {
fd2 = fcntl(fd, F_DUPFD, 10);
close(fd);

View File

@ -70,6 +70,8 @@ __FBSDID("$FreeBSD$");
#include "memalloc.h"
#include "error.h"
#include "mystring.h"
#include "var.h"
#include "builtins.h"
static struct job *jobtab; /* array of jobs */
@ -798,6 +800,7 @@ forkshell(struct job *jp, union node *n, int mode)
handler = &main_handler;
closescript();
INTON;
forcelocal = 0;
clear_traps();
#if JOBS
jobctl = 0; /* do job control only in root shell */
@ -820,7 +823,7 @@ forkshell(struct job *jp, union node *n, int mode)
! fd0_redirected_p ()) {
close(0);
if (open(_PATH_DEVNULL, O_RDONLY) != 0)
error("Can't open %s: %s",
error("cannot open %s: %s",
_PATH_DEVNULL, strerror(errno));
}
}
@ -832,7 +835,7 @@ forkshell(struct job *jp, union node *n, int mode)
! fd0_redirected_p ()) {
close(0);
if (open(_PATH_DEVNULL, O_RDONLY) != 0)
error("Can't open %s: %s",
error("cannot open %s: %s",
_PATH_DEVNULL, strerror(errno));
}
}
@ -1121,7 +1124,7 @@ backgndpidset(void)
pid_t
backgndpidval(void)
{
if (bgjob != NULL)
if (bgjob != NULL && !forcelocal)
bgjob->remembered = 1;
return backgndpid;
}

View File

@ -88,12 +88,7 @@ extern int in_dowait; /* are we in dowait()? */
extern volatile sig_atomic_t breakwaitcmd; /* break wait to process traps? */
void setjobctl(int);
int fgcmd(int, char **);
int bgcmd(int, char **);
int jobscmd(int, char **);
void showjobs(int, int);
int waitcmd(int, char **);
int jobidcmd(int, char **);
struct job *makejob(union node *, int);
pid_t forkshell(struct job *, union node *, int);
int waitforjob(struct job *, int *);

View File

@ -72,13 +72,14 @@ __FBSDID("$FreeBSD$");
#include "mystring.h"
#include "exec.h"
#include "cd.h"
#include "builtins.h"
int rootpid;
int rootshell;
struct jmploc main_handler;
int localeisutf8, initial_localeisutf8;
static void read_profile(const char *);
static void read_profile(char *);
static char *find_dot_file(char *);
/*
@ -92,7 +93,7 @@ static char *find_dot_file(char *);
int
main(int argc, char *argv[])
{
struct stackmark smark;
struct stackmark smark, smark2;
volatile int state;
char *shinit;
@ -139,6 +140,7 @@ main(int argc, char *argv[])
rootshell = 1;
init();
setstackmark(&smark);
setstackmark(&smark2);
procargs(argc, argv);
pwd_init(iflag);
if (iflag)
@ -149,7 +151,7 @@ main(int argc, char *argv[])
state1:
state = 2;
if (privileged == 0)
read_profile(".profile");
read_profile("${HOME-}/.profile");
else
read_profile("/etc/suid_profile");
}
@ -163,6 +165,7 @@ main(int argc, char *argv[])
}
state3:
state = 4;
popstackmark(&smark2);
if (minusc) {
evalstring(minusc, sflag ? 0 : EV_EXIT);
}
@ -235,12 +238,16 @@ cmdloop(int top)
*/
static void
read_profile(const char *name)
read_profile(char *name)
{
int fd;
const char *expandedname;
expandedname = expandstr(name);
if (expandedname == NULL)
return;
INTOFF;
if ((fd = open(name, O_RDONLY)) >= 0)
if ((fd = open(expandedname, O_RDONLY)) >= 0)
setinputfd(fd, 1);
INTON;
if (fd < 0)
@ -264,7 +271,7 @@ readcmdfile(const char *name)
if ((fd = open(name, O_RDONLY)) >= 0)
setinputfd(fd, 1);
else
error("Can't open %s: %s", name, strerror(errno));
error("cannot open %s: %s", name, strerror(errno));
INTON;
cmdloop(0);
popfile();

View File

@ -39,5 +39,3 @@ extern struct jmploc main_handler; /* top level exception handler */
void readcmdfile(const char *);
void cmdloop(int);
int dotcmd(int, char **);
int exitcmd(int, char **);

View File

@ -58,9 +58,7 @@ cat <<\!
!
awk '/^[^#]/ {if(('$havejobs' || $2 != "-j") && ('$havehist' || $2 != "-h")) \
print $0}' builtins.def | sed 's/-[hj]//' > $temp
awk '{ printf "int %s(int, char **);\n", $1}' $temp
echo '
int (*const builtinfunc[])(int, char **) = {'
echo 'int (*const builtinfunc[])(int, char **) = {'
awk '/^[^#]/ { printf "\t%s,\n", $1}' $temp
echo '};
@ -94,5 +92,7 @@ struct builtincmd {
};
extern int (*const builtinfunc[])(int, char **);
extern const struct builtincmd builtincmd[];'
extern const struct builtincmd builtincmd[];
'
awk '{ printf "int %s(int, char **);\n", $1}' $temp
rm -f $temp

View File

@ -50,6 +50,7 @@ TPIPE 0 "|"
TLP 0 "("
TRP 1 ")"
TENDCASE 1 ";;"
TFALLTHRU 1 ";&"
TREDIR 0 redirection
TWORD 0 word
TIF 0 "if"

View File

@ -39,8 +39,6 @@ extern int displayhist;
void histedit(void);
void sethistsize(const char *);
void setterm(const char *);
int histcmd(int, char **);
int not_fcnumber(const char *);
int str_to_event(const char *, int);
int bindcmd(int, char **);

View File

@ -56,7 +56,6 @@ NSEMI nbinary # two commands separated by a semicolon
NCMD ncmd # a simple command
type int
backgnd int # set to run command in background
args nodeptr # the arguments
redirect nodeptr # list of file redirections
@ -96,12 +95,13 @@ NCASE ncase # a case statement
expr nodeptr # the word to switch on
cases nodeptr # the list of cases (NCLIST nodes)
NCLIST nclist # a case
NCLIST nclist # a case ending with ;;
type int
next nodeptr # the next case in list
pattern nodeptr # list of patterns for this case
body nodeptr # code to execute for this case
NCLISTFALLTHRU nclist # a case ending with ;&
NDEFUN narg # define a function. The "next" field contains
# the body of the function.

View File

@ -56,6 +56,7 @@ __FBSDID("$FreeBSD$");
#include "memalloc.h"
#include "error.h"
#include "mystring.h"
#include "builtins.h"
#ifndef NO_HISTORY
#include "myhistedit.h"
#endif
@ -83,6 +84,7 @@ void
procargs(int argc, char **argv)
{
int i;
char *scriptname;
argptr = argv;
if (argc > 0)
@ -105,8 +107,9 @@ procargs(int argc, char **argv)
optlist[i].val = 0;
arg0 = argv[0];
if (sflag == 0 && minusc == NULL) {
commandname = arg0 = *argptr++;
setinputfile(commandname, 0);
scriptname = *argptr++;
setinputfile(scriptname, 0);
commandname = arg0 = scriptname;
}
/* POSIX 1003.2: first arg after -c cmd is $0, remainder $1... */
if (argptr && minusc && *argptr)

View File

@ -62,8 +62,9 @@ struct shparam {
#define privileged optlist[15].val
#define Tflag optlist[16].val
#define Pflag optlist[17].val
#define hflag optlist[18].val
#define NOPTS 18
#define NOPTS 19
struct optent {
const char *name;
@ -91,6 +92,7 @@ struct optent optlist[NOPTS] = {
{ "privileged", 'p', 0 },
{ "trapsasync", 'T', 0 },
{ "physical", 'P', 0 },
{ "trackall", 'h', 0 },
};
#else
extern struct optent optlist[NOPTS];
@ -108,8 +110,5 @@ void procargs(int, char **);
void optschanged(void);
void setparam(char **);
void freeparam(struct shparam *);
int shiftcmd(int, char **);
int setcmd(int, char **);
int getoptscmd(int, char **);
int nextopt(const char *);
void getoptsreset(const char *);

View File

@ -240,8 +240,8 @@ list(int nlflag, int erflag)
n2 = andor();
tok = readtoken();
if (tok == TBACKGND) {
if (n2->type == NCMD || n2->type == NPIPE) {
n2->ncmd.backgnd = 1;
if (n2->type == NPIPE) {
n2->npipe.backgnd = 1;
} else if (n2->type == NREDIR) {
n2->type = NBACKGND;
} else {
@ -542,10 +542,13 @@ TRACE(("expecting DO got %s %s\n", tokname[got], got == TWORD ? wordtext : ""));
checkkwd = CHKNL | CHKKWD | CHKALIAS;
if ((t = readtoken()) != TESAC) {
if (t != TENDCASE)
synexpect(TENDCASE);
if (t == TENDCASE)
;
else if (t == TFALLTHRU)
cp->type = NCLISTFALLTHRU;
else
checkkwd = CHKNL | CHKKWD, readtoken();
synexpect(TENDCASE);
checkkwd = CHKNL | CHKKWD, readtoken();
}
cpp = &cp->nclist.next;
}
@ -686,7 +689,6 @@ simplecmd(union node **rpp, union node *redir)
*rpp = NULL;
n = (union node *)stalloc(sizeof (struct ncmd));
n->type = NCMD;
n->ncmd.backgnd = 0;
n->ncmd.args = args;
n->ncmd.redirect = redir;
return n;
@ -931,8 +933,11 @@ xxreadtoken(void)
pungetc();
RETURN(TPIPE);
case ';':
if (pgetc() == ';')
c = pgetc();
if (c == ';')
RETURN(TENDCASE);
else if (c == '&')
RETURN(TFALLTHRU);
pungetc();
RETURN(TSEMI);
case '(':
@ -2029,3 +2034,47 @@ getprompt(void *unused __unused)
ps[i] = '\0';
return (ps);
}
const char *
expandstr(char *ps)
{
union node n;
struct jmploc jmploc;
struct jmploc *const savehandler = handler;
const int saveprompt = doprompt;
struct parsefile *const savetopfile = getcurrentfile();
struct parser_temp *const saveparser_temp = parser_temp;
const char *result = NULL;
if (!setjmp(jmploc.loc)) {
handler = &jmploc;
parser_temp = NULL;
setinputstring(ps, 1);
doprompt = 0;
readtoken1(pgetc(), DQSYNTAX, "\n\n", 0);
if (backquotelist != NULL)
error("Command substitution not allowed here");
n.narg.type = NARG;
n.narg.next = NULL;
n.narg.text = wordtext;
n.narg.backquote = backquotelist;
expandarg(&n, NULL, 0);
result = stackblock();
INTOFF;
}
handler = savehandler;
doprompt = saveprompt;
popfilesupto(savetopfile);
if (parser_temp != saveparser_temp) {
parser_temp_free_all();
parser_temp = saveparser_temp;
}
if (result != NULL) {
INTON;
} else if (exception == EXINT)
raise(SIGINT);
return result;
}

View File

@ -82,3 +82,4 @@ void fixredir(union node *, const char *, int);
int goodname(const char *);
int isassignment(const char *);
char *getprompt(void *);
const char *expandstr(char *);

View File

@ -32,7 +32,7 @@
.\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95
.\" $FreeBSD$
.\"
.Dd May 21, 2011
.Dd June 18, 2011
.Dt SH 1
.Os
.Sh NAME
@ -124,8 +124,8 @@ If the environment variable
.Ev ENV
is set on entry to a shell, or is set in the
.Pa .profile
of a login shell, the shell then reads commands from the file named in
.Ev ENV .
of a login shell, the shell then subjects its value to parameter expansion
and arithmetic expansion and reads commands from the named file.
Therefore, a user should place commands that are to be executed only
at login time in the
.Pa .profile
@ -241,6 +241,10 @@ tested, all commands of the function are considered to be tested as
well.
.It Fl f Li noglob
Disable pathname expansion.
.It Fl h Li trackall
A do-nothing option for
.Tn POSIX
compliance.
.It Fl I Li ignoreeof
Ignore
.Dv EOF Ap s
@ -324,7 +328,7 @@ Useful for debugging.
Write each command
(preceded by the value of the
.Va PS4
variable)
variable subjected to parameter expansion and arithmetic expansion)
to standard error before it is executed.
Useful for debugging.
.El
@ -372,7 +376,7 @@ The following is a list of valid operators:
.It Control operators:
.Bl -column "XXX" "XXX" "XXX" "XXX" "XXX" -offset center -compact
.It Li & Ta Li && Ta Li ( Ta Li ) Ta Li \en
.It Li ;; Ta Li ; Ta Li | Ta Li ||
.It Li ;; Ta Li ;& Ta Li ; Ta Li | Ta Li ||
.El
.It Redirection operators:
.Bl -column "XXX" "XXX" "XXX" "XXX" "XXX" -offset center -compact
@ -990,6 +994,11 @@ described later),
separated by
.Ql \&|
characters.
If the selected list is terminated by the control operator
.Ql ;&
instead of
.Ql ;; ,
execution continues with the next list.
The exit code of the
.Ic case
command is the exit code of the last command executed in the list or
@ -1536,10 +1545,7 @@ except that the built-in commands
and
.Ic trap
return information about the main shell environment
if they are the only command in a command substitution
and the substitutions in the command cannot cause side effects
(such as from assigning values to variables or referencing
.Li $! ).
if they are the only command in a command substitution.
.Ss Arithmetic Expansion
Arithmetic expansion provides a mechanism for evaluating an arithmetic
expression and substituting its value.
@ -1651,6 +1657,15 @@ matches a
rather than introducing a character class.
A character class matches any of the characters between the square brackets.
A range of characters may be specified using a minus sign.
A named class of characters (see
.Xr wctype 3 )
may be specified by surrounding the name with
.Ql \&[:
and
.Ql :\&] .
For example,
.Ql \&[\&[:alpha:\&]\&]
is a shell pattern that matches a single letter.
The character class may be complemented by making an exclamation point
.Pq Ql !\&
the first character of the character class.
@ -2575,6 +2590,7 @@ will return the argument.
.Xr execve 2 ,
.Xr getrlimit 2 ,
.Xr umask 2 ,
.Xr wctype 3 ,
.Xr editrc 5
.Sh HISTORY
A

View File

@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$");
#include "error.h"
#include "trap.h"
#include "mystring.h"
#include "builtins.h"
#include "myhistedit.h"

View File

@ -37,7 +37,6 @@ extern int pendingsigs;
extern int in_dotrap;
extern volatile sig_atomic_t gotwinch;
int trapcmd(int, char **);
void clear_traps(void);
int have_traps(void);
void setsignal(int);

View File

@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
#include "error.h"
#include "mystring.h"
#include "parser.h"
#include "builtins.h"
#ifndef NO_HISTORY
#include "myhistedit.h"
#endif
@ -94,6 +95,8 @@ struct var vps4;
struct var vvers;
static struct var voptind;
int forcelocal;
static const struct varinit varinit[] = {
#ifndef NO_HISTORY
{ &vhistsize, VUNSET, "HISTSIZE=",
@ -325,6 +328,8 @@ setvareq(char *s, int flags)
if (aflag)
flags |= VEXPORT;
if (forcelocal && !(flags & (VNOSET | VNOLOCAL)))
mklocal(s);
vp = find_var(s, &vpp, &nlen);
if (vp != NULL) {
if (vp->flags & VREADONLY)
@ -607,6 +612,12 @@ showvarscmd(int argc __unused, char **argv __unused)
qsort(vars, n, sizeof(*vars), var_compare);
for (i = 0; i < n; i++) {
/*
* Skip improper variable names so the output remains usable as
* shell input.
*/
if (!isassignment(vars[i]))
continue;
s = strchr(vars[i], '=');
s++;
outbin(vars[i], s - vars[i], out1);
@ -678,6 +689,13 @@ exportcmd(int argc, char **argv)
for (vp = *vpp ; vp ; vp = vp->next) {
if (vp->flags & flag) {
if (values) {
/*
* Skip improper variable names
* so the output remains usable
* as shell input.
*/
if (!isassignment(vp->text))
continue;
out1str(cmdname);
out1c(' ');
}
@ -740,9 +758,9 @@ mklocal(char *name)
vp = find_var(name, &vpp, NULL);
if (vp == NULL) {
if (strchr(name, '='))
setvareq(savestr(name), VSTRFIXED);
setvareq(savestr(name), VSTRFIXED | VNOLOCAL);
else
setvar(name, NULL, VSTRFIXED);
setvar(name, NULL, VSTRFIXED | VNOLOCAL);
vp = *vpp; /* the new variable */
lvp->text = NULL;
lvp->flags = VUNSET;
@ -751,7 +769,7 @@ mklocal(char *name)
lvp->flags = vp->flags;
vp->flags |= VSTRFIXED|VTEXTFIXED;
if (name[vp->name_len] == '=')
setvareq(savestr(name), 0);
setvareq(savestr(name), VNOLOCAL);
}
}
lvp->vp = vp;

View File

@ -46,6 +46,7 @@
#define VUNSET 0x20 /* the variable is not set */
#define VNOFUNC 0x40 /* don't call the callback function */
#define VNOSET 0x80 /* do not set variable - just readonly test */
#define VNOLOCAL 0x100 /* ignore forcelocal */
struct var {
@ -68,6 +69,7 @@ struct localvar {
struct localvar *localvars;
extern int forcelocal;
extern struct var vifs;
extern struct var vmail;
@ -121,11 +123,7 @@ void updatecharset(void);
void initcharset(void);
char **environment(void);
int showvarscmd(int, char **);
int exportcmd(int, char **);
int localcmd(int, char **);
void mklocal(char *);
void poplocalvars(void);
int setvarcmd(int, char **);
int unsetcmd(int, char **);
int unsetvar(const char *);
int setvarsafe(const char *, const char *, int);

View File

@ -43,6 +43,10 @@
#include <stdio.h>
#include <stdlib.h>
#ifdef __cplusplus
extern "C" {
#endif
static __inline void
__assert(const char *expr, const char *file, int line)
{
@ -52,4 +56,9 @@ __assert(const char *expr, const char *file, int line)
abort();
/* NOTREACHED */
}
#ifdef __cplusplus
}
#endif
#endif /* !_ASSERT_H_ */

View File

@ -223,6 +223,7 @@ fsshare_main(const char *file, const char *mountpoint, const char *shareopts,
error = errno;
unlink(tmpfile);
} else {
fflush(newfd);
/*
* Send SIGHUP to mountd, but unlock exports file later.
*/

View File

@ -45,6 +45,7 @@
#include <assert.h>
#include <libgen.h>
#include <limits.h>
#include <stdint.h>
#include <dt_impl.h>
@ -811,15 +812,14 @@ dt_basename(char *str)
ulong_t
dt_popc(ulong_t x)
{
#ifdef _ILP32
#if defined(_ILP32)
x = x - ((x >> 1) & 0x55555555UL);
x = (x & 0x33333333UL) + ((x >> 2) & 0x33333333UL);
x = (x + (x >> 4)) & 0x0F0F0F0FUL;
x = x + (x >> 8);
x = x + (x >> 16);
return (x & 0x3F);
#endif
#ifdef _LP64
#elif defined(_LP64)
x = x - ((x >> 1) & 0x5555555555555555ULL);
x = (x & 0x3333333333333333ULL) + ((x >> 2) & 0x3333333333333333ULL);
x = (x + (x >> 4)) & 0x0F0F0F0F0F0F0F0FULL;
@ -827,6 +827,8 @@ dt_popc(ulong_t x)
x = x + (x >> 16);
x = x + (x >> 32);
return (x & 0x7F);
#else
/* This should be a #warning but for now ignore error. Err: "need td_popc() implementation" */
#endif
}
@ -958,7 +960,7 @@ dtrace_uaddr2str(dtrace_hdl_t *dtp, pid_t pid,
P = dt_proc_grab(dtp, pid, PGRAB_RDONLY | PGRAB_FORCE, 0);
if (P == NULL) {
(void) snprintf(c, sizeof (c), "0x%llx", addr);
(void) snprintf(c, sizeof (c), "0x%jx", (uintmax_t)addr);
return (dt_string2str(c, str, nbytes));
}
@ -976,10 +978,10 @@ dtrace_uaddr2str(dtrace_hdl_t *dtp, pid_t pid,
(void) snprintf(c, sizeof (c), "%s`%s", obj, name);
}
} else if (Pobjname(P, addr, objname, sizeof (objname)) != 0) {
(void) snprintf(c, sizeof (c), "%s`0x%llx",
dt_basename(objname), addr);
(void) snprintf(c, sizeof (c), "%s`0x%jx",
dt_basename(objname), (uintmax_t)addr);
} else {
(void) snprintf(c, sizeof (c), "0x%llx", addr);
(void) snprintf(c, sizeof (c), "0x%jx", (uintmax_t)addr);
}
dt_proc_unlock(dtp, P);

View File

@ -1,3 +1,16 @@
--- 9.6-ESV-R4-P1 released ---
3121. [security] An authoritative name server sending a negative
response containing a very large RRset could
trigger an off-by-one error in the ncache code
and crash named. [RT #24650]
3120. [bug] Named could fail to validate zones listed in a DLV
that validated insecure without using DLV and had
DS records in the parent zone. [RT #24631]
--- 9.6-ESV-R4 released ---
--- 9.6.3 released ---
3009. [bug] clients-per-query code didn't work as expected with
@ -50,51 +63,9 @@
wrong lock which could lead to server deadlock.
[RT #22614]
2972. [bug] win32: address windows socket errors. [RT #21906]
2971. [bug] Fixed a bug that caused journal files not to be
compacted on Windows systems as a result of
non-POSIX-compliant rename() semantics. [RT #22434]
2970. [security] Adding a NO DATA negative cache entry failed to clear
any matching RRSIG records. A subsequent lookup of
of NO DATA cache entry could trigger a INSIST when the
unexpected RRSIG was also returned with the NO DATA
cache entry.
CVE-2010-3613, VU#706148. [RT #22288]
2969. [security] Fix acl type processing so that allow-query works
in options and view statements. Also add a new
set of tests to verify proper functioning.
CVE-2010-3615, VU#510208. [RT #22418]
2968. [security] Named could fail to prove a data set was insecure
before marking it as insecure. One set of conditions
that can trigger this occurs naturally when rolling
DNSKEY algorithms.
CVE-2010-3614, VU#837744. [RT #22309]
2967. [bug] 'host -D' now turns on debugging messages earlier.
[RT #22361]
2966. [bug] isc_print_vsnprintf() failed to check if there was
space available in the buffer when adding a left
justified character with a non zero width,
(e.g. "%-1c"). [RT #22270]
2965. [func] Test HMAC functions using test data from RFC 2104 and
RFC 4634. [RT #21702]
2964. [bug] view->queryacl was being overloaded. Seperate the
usage into view->queryacl, view->cacheacl and
view->queryonacl. [RT #22114]
2962. [port] win32: add more dependencies to BINDBuild.dsw.
[RT #22062]
2960. [func] Check that named accepts non-authoritative answers.
[RT #21594]
@ -114,13 +85,6 @@
exact match" message when returning a wildcard
no data response. [RT #21744]
2952. [port] win32: named-checkzone and named-checkconf failed
to initialise winsock. [RT #21932]
2951. [bug] named failed to generate a correct signed response
in a optout, delegation only zone with no secure
delegations. [RT #22007]
2950. [bug] named failed to perform a SOA up to date check when
falling back to TCP on UDP timeouts when
ixfr-from-differences was set. [RT #21595]
@ -139,27 +103,6 @@
2941. [bug] sdb and sdlz (dlz's zone database) failed to support
DNAME at the zone apex. [RT #21610]
2939. [func] Check that named successfully skips NSEC3 records
that fail to match the NSEC3PARAM record currently
in use. [RT# 21868]
2937. [bug] Worked around an apparent race condition in over
memory conditions. Without this fix a DNS cache DB or
ADB could incorrectly stay in an over memory state,
effectively refusing further caching, which
subsequently made a BIND 9 caching server unworkable.
This fix prevents this problem from happening by
polling the state of the memory context, rather than
making a copy of the state, which appeared to cause
a race. This is a "workaround" in that it doesn't
solve the possible race per se, but several experiments
proved this change solves the symptom. Also, the
polling overhead hasn't been reported to be an issue.
This bug should only affect a caching server that
specifies a finite max-cache-size. It's also quite
likely that the bug happens only when enabling threads,
but it's not confirmed yet. [RT #21818]
2935. [bug] nsupdate: improve 'file not found' error message.
[RT #21871]
@ -189,17 +132,11 @@
smaller)
[RT #19737]
2925. [bug] Named failed to accept uncachable negative responses
from insecure zones. [RT# 21555]
2923. [bug] 'dig +trace' could drop core after "connection
timeout". [RT #21514]
2922. [contrib] Update zkt to version 1.0.
2921. [bug] The resolver could attempt to destroy a fetch context
too soon. [RT #19878]
2918. [maint] Add AAAA address for I.ROOT-SERVERS.NET.
2916. [func] Add framework to use IPv6 in tests.
@ -229,10 +166,6 @@
2901. [port] Use AC_C_FLEXIBLE_ARRAY_MEMBER. [RT #21316]
2900. [bug] The placeholder negative caching element was not
properly constructed triggering a INSIST in
dns_ncache_towire(). [RT #21346]
2899. [port] win32: Support linking against OpenSSL 1.0.0.
2898. [bug] nslookup leaked memory when -domain=value was
@ -243,9 +176,6 @@
2891. [maint] Update empty-zones list to match
draft-ietf-dnsop-default-local-zones-13. [RT# 21099]
2890. [bug] Handle the introduction of new trusted-keys and
DS, DLV RRsets better. [RT #21097]
2889. [bug] Elements of the grammar where not properly reported.
[RT #21046]
@ -272,9 +202,6 @@
2877. [bug] The validator failed to skip obviously mismatching
RRSIGs. [RT #21138]
2876. [bug] Named could return SERVFAIL for negative responses
from unsigned zones. [RT #21131]
2875. [bug] dns_time64_fromtext() could accept non digits.
[RT #21033]
@ -284,9 +211,6 @@
2870. [maint] Add AAAA address for L.ROOT-SERVERS.NET.
2869. [bug] Fix arguments to dns_keytable_findnextkeynode() call.
[RT #20877]
2868. [cleanup] Run "make clean" at the end of configure to ensure
any changes made by configure are integrated.
Use --with-make-clean=no to disable. [RT #20994]
@ -322,11 +246,108 @@
2853. [bug] add_sigs() could run out of scratch space. [RT #21015]
2852. [bug] Handle broken DNSSEC trust chains better. [RT #15619]
2851. [doc] nslookup.1, removed <informalexample> from the docbook
source as it produced bad nroff. [RT #21007]
--- 9.6-ESV-R3 released ---
2972. [bug] win32: address windows socket errors. [RT #21906]
2971. [bug] Fixed a bug that caused journal files not to be
compacted on Windows systems as a result of
non-POSIX-compliant rename() semantics. [RT #22434]
2970. [security] Adding a NO DATA negative cache entry failed to clear
any matching RRSIG records. A subsequent lookup of
of NO DATA cache entry could trigger a INSIST when the
unexpected RRSIG was also returned with the NO DATA
cache entry.
CVE-2010-3613, VU#706148. [RT #22288]
2969. [security] Fix acl type processing so that allow-query works
in options and view statements. Also add a new
set of tests to verify proper functioning.
CVE-2010-3615, VU#510208. [RT #22418]
2968. [security] Named could fail to prove a data set was insecure
before marking it as insecure. One set of conditions
that can trigger this occurs naturally when rolling
DNSKEY algorithms.
CVE-2010-3614, VU#837744. [RT #22309]
2967. [bug] 'host -D' now turns on debugging messages earlier.
[RT #22361]
2966. [bug] isc_print_vsnprintf() failed to check if there was
space available in the buffer when adding a left
justified character with a non zero width,
(e.g. "%-1c"). [RT #22270]
2964. [bug] view->queryacl was being overloaded. Seperate the
usage into view->queryacl, view->cacheacl and
view->queryonacl. [RT #22114]
2962. [port] win32: add more dependencies to BINDBuild.dsw.
[RT #22062]
2952. [port] win32: named-checkzone and named-checkconf failed
to initialise winsock. [RT #21932]
2951. [bug] named failed to generate a correct signed response
in a optout, delegation only zone with no secure
delegations. [RT #22007]
--- 9.6-ESV-R2 released ---
2939. [func] Check that named successfully skips NSEC3 records
that fail to match the NSEC3PARAM record currently
in use. [RT# 21868]
2937. [bug] Worked around an apparent race condition in over
memory conditions. Without this fix a DNS cache DB or
ADB could incorrectly stay in an over memory state,
effectively refusing further caching, which
subsequently made a BIND 9 caching server unworkable.
This fix prevents this problem from happening by
polling the state of the memory context, rather than
making a copy of the state, which appeared to cause
a race. This is a "workaround" in that it doesn't
solve the possible race per se, but several experiments
proved this change solves the symptom. Also, the
polling overhead hasn't been reported to be an issue.
This bug should only affect a caching server that
specifies a finite max-cache-size. It's also quite
likely that the bug happens only when enabling threads,
but it's not confirmed yet. [RT #21818]
2925. [bug] Named failed to accept uncachable negative responses
from insecure zones. [RT# 21555]
2921. [bug] The resolver could attempt to destroy a fetch context
too soon. [RT #19878]
2900. [bug] The placeholder negative caching element was not
properly constructed triggering a INSIST in
dns_ncache_towire(). [RT #21346]
2890. [bug] Handle the introduction of new trusted-keys and
DS, DLV RRsets better. [RT #21097]
2869. [bug] Fix arguments to dns_keytable_findnextkeynode() call.
[RT #20877]
--- 9.6-ESV-R1 released ---
2876. [bug] Named could return SERVFAIL for negative responses
from unsigned zones. [RT #21131]
--- 9.6-ESV released ---
2852. [bug] Handle broken DNSSEC trust chains better. [RT #15619]
--- 9.6.2 released ---
2850. [bug] If isc_heap_insert() failed due to memory shortage

View File

@ -17,7 +17,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: FAQ.xml,v 1.46.56.9 2010/01/20 23:47:43 tbox Exp $ -->
<!-- $Id: FAQ.xml,v 1.46.56.9 2010-01-20 23:47:43 tbox Exp $ -->
<article class="faq">
<title>Frequently Asked Questions about BIND 9</title>

View File

@ -13,7 +13,7 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# $Id: Makefile.in,v 1.52.48.2 2009/02/20 23:47:23 tbox Exp $
# $Id: Makefile.in,v 1.52.48.2 2009-02-20 23:47:23 tbox Exp $
srcdir = @srcdir@
VPATH = @srcdir@

View File

@ -109,4 +109,4 @@ about idnkit and this patch.
Bug reports and comments on this kit should be sent to
mdnkit-bugs@nic.ad.jp and idn-cmt@nic.ad.jp, respectively.
; $Id: README.idnkit,v 1.2.762.1 2009/01/18 23:25:14 marka Exp $
; $Id: README.idnkit,v 1.2.762.1 2009-01-18 23:25:14 marka Exp $

View File

@ -1,165 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><link rel="stylesheet" href="release-notes.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /></head><body><div class="article"><div class="titlepage"><hr /></div>
<div class="section" title="Introduction"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3026830"></a>Introduction</h2></div></div></div>
<p>
BIND 9.6.3 is the current release of BIND 9.6.
</p>
<p>
This document summarizes changes from BIND 9.6.2-P2 to BIND 9.6.3.
Please see the CHANGES file in the source code release for a
complete list of all changes.
</p>
</div>
<div class="section" title="Download"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3893341"></a>Download</h2></div></div></div>
<p>
The latest development version of BIND 9 software can always be found
on our web site at
<a class="ulink" href="http://www.isc.org/downloads/development" target="_top">http://www.isc.org/downloads/development</a>.
There you will find additional information about each release,
source code, and some pre-compiled versions for certain operating
systems.
</p>
</div>
<div class="section" title="Support"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3026768"></a>Support</h2></div></div></div>
<p>Product support information is available on
<a class="ulink" href="http://www.isc.org/services/support" target="_top">http://www.isc.org/services/support</a>
for paid support options. Free support is provided by our user
community via a mailing list. Information on all public email
lists is available at
<a class="ulink" href="https://lists.isc.org/mailman/listinfo" target="_top">https://lists.isc.org/mailman/listinfo</a>.
</p>
</div>
<div class="section" title="New Features"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3893404"></a>New Features</h2></div></div></div>
<div class="section" title="9.6.3"><div class="titlepage"><div><div><h3 class="title"><a id="id3893409"></a>9.6.3</h3></div></div></div>
<p>None.</p>
</div>
</div>
<div class="section" title="Feature Changes"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3893420"></a>Feature Changes</h2></div></div></div>
<div class="section" title="9.6.3"><div class="titlepage"><div><div><h3 class="title"><a id="id3893425"></a>9.6.3</h3></div></div></div>
<p>None.</p>
</div>
</div>
<div class="section" title="Security Fixes"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3893436"></a>Security Fixes</h2></div></div></div>
<div class="section" title="9.6.2-P3"><div class="titlepage"><div><div><h3 class="title"><a id="id3893441"></a>9.6.2-P3</h3></div></div></div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
Adding a NO DATA signed negative response to cache failed to clear
any matching RRSIG records already in cache. A subsequent lookup
of the cached NO DATA entry could crash named (INSIST) when the
unexpected RRSIG was also returned with the NO DATA cache entry.
[RT #22288] [CVE-2010-3613] [VU#706148]
</li><li class="listitem">
BIND, acting as a DNSSEC validator, was determining if the NS RRset
is insecure based on a value that could mean either that the RRset
is actually insecure or that there wasn't a matching key for the RRSIG
in the DNSKEY RRset when resuming from validating the DNSKEY RRset.
This can happen when in the middle of a DNSKEY algorithm rollover,
when two different algorithms were used to sign a zone but only the
new set of keys are in the zone DNSKEY RRset.
[RT #22309] [CVE-2010-3614] [VU#837744]
</li></ul></div>
</div>
</div>
<div class="section" title="Bug Fixes"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3026756"></a>Bug Fixes</h2></div></div></div>
<div class="section" title="9.6.3"><div class="titlepage"><div><div><h3 class="title"><a id="id3026817"></a>9.6.3</h3></div></div></div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
BIND now builds with threads disabled in versions of NetBSD earlier
than 5.0 and with pthreads enabled by default in NetBSD versions 5.0
and higher. Also removes support for unproven-pthreads, mit-pthreads
and ptl2. [RT #19203]
</li><li class="listitem">
HPUX now correctly defaults to using /dev/poll, which should
increase performance. [RT #21919]
</li><li class="listitem">
If named is running as a threaded application, after an "rndc stop"
command has been issued, other inbound TCP requests can cause named
to hang and never complete shutdown. [RT #22108]
</li><li class="listitem">
When performing a GSS-TSIG signed dynamic zone update, memory could be
leaked. This causes an unclean shutdown and may affect long-running
servers. [RT #22573]
</li><li class="listitem">
A bug in NetBSD and FreeBSD kernels with SO_ACCEPTFILTER enabled allows
for a TCP DoS attack. Until there is a kernel fix, ISC is disabling
SO_ACCEPTFILTER support in BIND. [RT #22589]
</li><li class="listitem">
Corrected a defect where a combination of dynamic updates and zone
transfers incorrectly locked the in-memory zone database, causing
named to freeze. [RT #22614]
</li><li class="listitem">
Don't run MX checks (check-mx) when the MX record points to ".".
[RT #22645]
</li><li class="listitem">
DST key reference counts can now be incremented via dst_key_attach.
[RT #22672]
</li><li class="listitem">
isc_mutex_init_errcheck() in phtreads/mutex.c failed to destroy attr. [RT #22766]
</li><li class="listitem">
The Kerberos realm was being truncated when being pulled from the
the host prinicipal, make krb5-self updates fail. [RT #22770]
</li><li class="listitem">
named failed to preserve the case of domain names in RDATA which is not compressible when writing master files. [RT #22863]
</li><li class="listitem">
There was a bug in how the clients-per-query code worked with some
query patterns. This could result, in rare circumstances, in having all
the client query slots filled with queries for the same DNS label,
essentially ignoring the max-clients-per-query setting.
[RT #22972]
</li></ul></div>
</div>
<div class="section" title="9.6.2-P3"><div class="titlepage"><div><div><h3 class="title"><a id="id3893557"></a>9.6.2-P3</h3></div></div></div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
Worked around a race condition in the cache database memory
handling. Without this fix a DNS cache DB or ADB could
incorrectly stay in an over memory state, effectively refusing
further caching, which subsequently made a BIND 9 caching
server unworkable.
[RT #21818]
</li><li class="listitem">
Microsoft changed the behavior of sockets between NT/XP based
stacks vs Vista/windows7 stacks. Server 2003/2008 have the older
behavior, 2008r2 has the new behavior. With the change, different
error results are possible, so ISC adapted BIND to handle the new
error results.
This resolves an issue where sockets would shut down on
Windows servers causing named to stop responding to queries.
[RT #21906]
</li><li class="listitem">
Windows has non-POSIX compliant behavior in its rename() and unlink()
calls. This caused journal compaction to fail on Windows BIND servers
with the log error: "dns_journal_compact failed: failure".
[RT #22434]
</li></ul></div>
</div>
</div>
<div class="section" title="Thank You"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id3893594"></a>Thank You</h2></div></div></div>
<p>
Thank you to everyone who assisted us in making this release possible.
If you would like to contribute to ISC to assist us in continuing to make
quality open source software, please visit our donations page at
<a class="ulink" href="http://www.isc.org/supportisc" target="_top">http://www.isc.org/supportisc</a>.
</p>
</div>
</div></body></html>

View File

@ -1,118 +0,0 @@
__________________________________________________________________
Introduction
BIND 9.6.3 is the current release of BIND 9.6.
This document summarizes changes from BIND 9.6.2-P2 to BIND 9.6.3.
Please see the CHANGES file in the source code release for a complete
list of all changes.
Download
The latest development version of BIND 9 software can always be found
on our web site at http://www.isc.org/downloads/development. There you
will find additional information about each release, source code, and
some pre-compiled versions for certain operating systems.
Support
Product support information is available on
http://www.isc.org/services/support for paid support options. Free
support is provided by our user community via a mailing list.
Information on all public email lists is available at
https://lists.isc.org/mailman/listinfo.
New Features
9.6.3
None.
Feature Changes
9.6.3
None.
Security Fixes
9.6.2-P3
* Adding a NO DATA signed negative response to cache failed to clear
any matching RRSIG records already in cache. A subsequent lookup of
the cached NO DATA entry could crash named (INSIST) when the
unexpected RRSIG was also returned with the NO DATA cache entry.
[RT #22288] [CVE-2010-3613] [VU#706148]
* BIND, acting as a DNSSEC validator, was determining if the NS RRset
is insecure based on a value that could mean either that the RRset
is actually insecure or that there wasn't a matching key for the
RRSIG in the DNSKEY RRset when resuming from validating the DNSKEY
RRset. This can happen when in the middle of a DNSKEY algorithm
rollover, when two different algorithms were used to sign a zone
but only the new set of keys are in the zone DNSKEY RRset. [RT
#22309] [CVE-2010-3614] [VU#837744]
Bug Fixes
9.6.3
* BIND now builds with threads disabled in versions of NetBSD earlier
than 5.0 and with pthreads enabled by default in NetBSD versions
5.0 and higher. Also removes support for unproven-pthreads,
mit-pthreads and ptl2. [RT #19203]
* HPUX now correctly defaults to using /dev/poll, which should
increase performance. [RT #21919]
* If named is running as a threaded application, after an "rndc stop"
command has been issued, other inbound TCP requests can cause named
to hang and never complete shutdown. [RT #22108]
* When performing a GSS-TSIG signed dynamic zone update, memory could
be leaked. This causes an unclean shutdown and may affect
long-running servers. [RT #22573]
* A bug in NetBSD and FreeBSD kernels with SO_ACCEPTFILTER enabled
allows for a TCP DoS attack. Until there is a kernel fix, ISC is
disabling SO_ACCEPTFILTER support in BIND. [RT #22589]
* Corrected a defect where a combination of dynamic updates and zone
transfers incorrectly locked the in-memory zone database, causing
named to freeze. [RT #22614]
* Don't run MX checks (check-mx) when the MX record points to ".".
[RT #22645]
* DST key reference counts can now be incremented via dst_key_attach.
[RT #22672]
* isc_mutex_init_errcheck() in phtreads/mutex.c failed to destroy
attr. [RT #22766]
* The Kerberos realm was being truncated when being pulled from the
the host prinicipal, make krb5-self updates fail. [RT #22770]
* named failed to preserve the case of domain names in RDATA which is
not compressible when writing master files. [RT #22863]
* There was a bug in how the clients-per-query code worked with some
query patterns. This could result, in rare circumstances, in having
all the client query slots filled with queries for the same DNS
label, essentially ignoring the max-clients-per-query setting. [RT
#22972]
9.6.2-P3
* Worked around a race condition in the cache database memory
handling. Without this fix a DNS cache DB or ADB could incorrectly
stay in an over memory state, effectively refusing further caching,
which subsequently made a BIND 9 caching server unworkable. [RT
#21818]
* Microsoft changed the behavior of sockets between NT/XP based
stacks vs Vista/windows7 stacks. Server 2003/2008 have the older
behavior, 2008r2 has the new behavior. With the change, different
error results are possible, so ISC adapted BIND to handle the new
error results. This resolves an issue where sockets would shut down
on Windows servers causing named to stop responding to queries. [RT
#21906]
* Windows has non-POSIX compliant behavior in its rename() and
unlink() calls. This caused journal compaction to fail on Windows
BIND servers with the log error: "dns_journal_compact failed:
failure". [RT #22434]
Thank You
Thank you to everyone who assisted us in making this release possible.
If you would like to contribute to ISC to assist us in continuing to
make quality open source software, please visit our donations page at
http://www.isc.org/supportisc.

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: acconfig.h,v 1.51.334.2 2009/02/16 23:47:15 tbox Exp $ */
/* $Id: acconfig.h,v 1.51.334.2 2009-02-16 23:47:15 tbox Exp $ */
/*! \file */

View File

@ -13,7 +13,7 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# $Id: Makefile.in,v 1.25 2007/06/19 23:46:59 tbox Exp $
# $Id: Makefile.in,v 1.25 2007-06-19 23:46:59 tbox Exp $
srcdir = @srcdir@
VPATH = @srcdir@

View File

@ -13,7 +13,7 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# $Id: Makefile.in,v 1.32 2007/06/19 23:46:59 tbox Exp $
# $Id: Makefile.in,v 1.32 2007-06-19 23:46:59 tbox Exp $
srcdir = @srcdir@
VPATH = @srcdir@

View File

@ -13,7 +13,7 @@
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\" PERFORMANCE OF THIS SOFTWARE.
.\"
.\" $Id: named-checkconf.8,v 1.30.334.1 2009/07/11 01:55:20 tbox Exp $
.\" $Id: named-checkconf.8,v 1.30.334.1 2009-07-11 01:55:20 tbox Exp $
.\"
.hy 0
.ad l

View File

@ -18,7 +18,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: named-checkconf.docbook,v 1.19 2007/06/19 06:58:03 marka Exp $ -->
<!-- $Id: named-checkconf.docbook,v 1.19 2007-06-19 06:58:03 marka Exp $ -->
<refentry id="man.named-checkconf">
<refentryinfo>
<date>June 14, 2000</date>

View File

@ -14,7 +14,7 @@
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: named-checkconf.html,v 1.30.334.1 2009/07/11 01:55:20 tbox Exp $ -->
<!-- $Id: named-checkconf.html,v 1.30.334.1 2009-07-11 01:55:20 tbox Exp $ -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

View File

@ -13,7 +13,7 @@
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\" PERFORMANCE OF THIS SOFTWARE.
.\"
.\" $Id: named-checkzone.8,v 1.42.334.3 2009/11/11 01:56:22 tbox Exp $
.\" $Id: named-checkzone.8,v 1.42.334.3 2009-11-11 01:56:22 tbox Exp $
.\"
.hy 0
.ad l

View File

@ -18,7 +18,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: named-checkzone.docbook,v 1.34.334.3 2009/11/10 20:01:41 each Exp $ -->
<!-- $Id: named-checkzone.docbook,v 1.34.334.3 2009-11-10 20:01:41 each Exp $ -->
<refentry id="man.named-checkzone">
<refentryinfo>
<date>June 13, 2000</date>

View File

@ -14,7 +14,7 @@
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: named-checkzone.html,v 1.42.334.3 2009/11/11 01:56:22 tbox Exp $ -->
<!-- $Id: named-checkzone.html,v 1.42.334.3 2009-11-11 01:56:22 tbox Exp $ -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

View File

@ -13,7 +13,7 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# $Id: Makefile.in,v 1.41 2007/06/19 23:46:59 tbox Exp $
# $Id: Makefile.in,v 1.41 2007-06-19 23:46:59 tbox Exp $
srcdir = @srcdir@
VPATH = @srcdir@

View File

@ -13,7 +13,7 @@
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\" PERFORMANCE OF THIS SOFTWARE.
.\"
.\" $Id: dig.1,v 1.50.44.3 2009/07/11 01:55:20 tbox Exp $
.\" $Id: dig.1,v 1.50.44.3 2009-07-11 01:55:20 tbox Exp $
.\"
.hy 0
.ad l

View File

@ -18,7 +18,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: dig.docbook,v 1.42.44.3 2009/02/02 04:42:48 marka Exp $ -->
<!-- $Id: dig.docbook,v 1.42.44.3 2009-02-02 04:42:48 marka Exp $ -->
<refentry id="man.dig">
<refentryinfo>

View File

@ -14,7 +14,7 @@
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: dig.html,v 1.45.44.3 2009/07/11 01:55:20 tbox Exp $ -->
<!-- $Id: dig.html,v 1.45.44.3 2009-07-11 01:55:20 tbox Exp $ -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

View File

@ -13,7 +13,7 @@
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\" PERFORMANCE OF THIS SOFTWARE.
.\"
.\" $Id: host.1,v 1.29.114.2 2009/07/11 01:55:20 tbox Exp $
.\" $Id: host.1,v 1.29.114.2 2009-07-11 01:55:20 tbox Exp $
.\"
.hy 0
.ad l

View File

@ -18,7 +18,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: host.docbook,v 1.18.114.2 2009/01/22 23:47:05 tbox Exp $ -->
<!-- $Id: host.docbook,v 1.18.114.2 2009-01-22 23:47:05 tbox Exp $ -->
<refentry id="man.host">
<refentryinfo>

View File

@ -14,7 +14,7 @@
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: host.html,v 1.28.114.2 2009/07/11 01:55:20 tbox Exp $ -->
<!-- $Id: host.html,v 1.28.114.2 2009-07-11 01:55:20 tbox Exp $ -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: dig.h,v 1.107.120.2 2009/01/06 23:47:26 tbox Exp $ */
/* $Id: dig.h,v 1.107.120.2 2009-01-06 23:47:26 tbox Exp $ */
#ifndef DIG_H
#define DIG_H

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: nslookup.c,v 1.117.334.5 2009/10/20 01:11:22 marka Exp $ */
/* $Id: nslookup.c,v 1.117.334.5 2009-10-20 01:11:22 marka Exp $ */
#include <config.h>

View File

@ -13,7 +13,7 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# $Id: Makefile.in,v 1.35 2008/11/07 02:28:49 marka Exp $
# $Id: Makefile.in,v 1.35 2008-11-07 02:28:49 marka Exp $
srcdir = @srcdir@
VPATH = @srcdir@

View File

@ -14,7 +14,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: dnssec-dsfromkey.c,v 1.2.14.6 2010/01/11 23:47:22 tbox Exp $ */
/* $Id: dnssec-dsfromkey.c,v 1.2.14.6 2010-01-11 23:47:22 tbox Exp $ */
/*! \file */

View File

@ -17,7 +17,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: dnssec-dsfromkey.docbook,v 1.6 2008/11/07 13:54:11 jreed Exp $ -->
<!-- $Id: dnssec-dsfromkey.docbook,v 1.6 2008-11-07 13:54:11 jreed Exp $ -->
<refentry id="man.dnssec-dsfromkey">
<refentryinfo>
<date>November 29, 2008</date>

View File

@ -12,7 +12,7 @@
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\" PERFORMANCE OF THIS SOFTWARE.
.\"
.\" $Id: dnssec-keyfromlabel.8,v 1.6.14.3 2010/01/16 01:55:32 tbox Exp $
.\" $Id: dnssec-keyfromlabel.8,v 1.6.14.3 2010-01-16 01:55:32 tbox Exp $
.\"
.hy 0
.ad l

View File

@ -14,7 +14,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: dnssec-keyfromlabel.c,v 1.4.50.2 2010/01/15 23:47:31 tbox Exp $ */
/* $Id: dnssec-keyfromlabel.c,v 1.4.50.2 2010-01-15 23:47:31 tbox Exp $ */
/*! \file */

View File

@ -17,7 +17,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: dnssec-keyfromlabel.docbook,v 1.6.14.2 2010/01/15 23:47:31 tbox Exp $ -->
<!-- $Id: dnssec-keyfromlabel.docbook,v 1.6.14.2 2010-01-15 23:47:31 tbox Exp $ -->
<refentry id="man.dnssec-keyfromlabel">
<refentryinfo>
<date>February 8, 2008</date>

View File

@ -13,7 +13,7 @@
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\" PERFORMANCE OF THIS SOFTWARE.
.\"
.\" $Id: dnssec-keygen.8,v 1.40.44.4 2010/01/16 01:55:32 tbox Exp $
.\" $Id: dnssec-keygen.8,v 1.40.44.4 2010-01-16 01:55:32 tbox Exp $
.\"
.hy 0
.ad l

View File

@ -29,7 +29,7 @@
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: dnssec-keygen.c,v 1.81.48.2 2010/01/15 23:47:31 tbox Exp $ */
/* $Id: dnssec-keygen.c,v 1.81.48.2 2010-01-15 23:47:31 tbox Exp $ */
/*! \file */

View File

@ -18,7 +18,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: dnssec-keygen.docbook,v 1.22.44.4 2010/01/15 23:47:33 tbox Exp $ -->
<!-- $Id: dnssec-keygen.docbook,v 1.22.44.4 2010-01-15 23:47:33 tbox Exp $ -->
<refentry id="man.dnssec-keygen">
<refentryinfo>
<date>June 30, 2000</date>

View File

@ -13,7 +13,7 @@
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\" PERFORMANCE OF THIS SOFTWARE.
.\"
.\" $Id: dnssec-signzone.8,v 1.47.44.8 2009/11/07 01:56:11 tbox Exp $
.\" $Id: dnssec-signzone.8,v 1.47.44.8 2009-11-07 01:56:11 tbox Exp $
.\"
.hy 0
.ad l

View File

@ -18,7 +18,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: dnssec-signzone.docbook,v 1.31.44.8 2009/11/06 21:36:22 each Exp $ -->
<!-- $Id: dnssec-signzone.docbook,v 1.31.44.8 2009-11-06 21:36:22 each Exp $ -->
<refentry id="man.dnssec-signzone">
<refentryinfo>
<date>June 08, 2009</date>

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: dnssectool.c,v 1.45.334.5 2009/06/22 05:05:00 marka Exp $ */
/* $Id: dnssectool.c,v 1.45.334.5 2009-06-22 05:05:00 marka Exp $ */
/*! \file */

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: dnssectool.h,v 1.22.48.2 2009/09/04 23:46:58 tbox Exp $ */
/* $Id: dnssectool.h,v 1.22.48.2 2009-09-04 23:46:58 tbox Exp $ */
#ifndef DNSSECTOOL_H
#define DNSSECTOOL_H 1

View File

@ -13,7 +13,7 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# $Id: Makefile.in,v 1.101 2008/09/23 17:25:47 jinmei Exp $
# $Id: Makefile.in,v 1.101 2008-09-23 17:25:47 jinmei Exp $
srcdir = @srcdir@
VPATH = @srcdir@

View File

@ -15,7 +15,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: bind9.xsl,v 1.19.82.2 2009/01/29 23:47:43 tbox Exp $ -->
<!-- $Id: bind9.xsl,v 1.19.82.2 2009-01-29 23:47:43 tbox Exp $ -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: config.c,v 1.93.14.2 2009/03/17 23:47:28 tbox Exp $ */
/* $Id: config.c,v 1.93.14.2 2009-03-17 23:47:28 tbox Exp $ */
/*! \file */

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: controlconf.c,v 1.60 2008/07/23 23:27:54 marka Exp $ */
/* $Id: controlconf.c,v 1.60 2008-07-23 23:27:54 marka Exp $ */
/*! \file */

View File

@ -14,12 +14,12 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# $Id: convertxsl.pl,v 1.14 2008/07/17 23:43:26 jinmei Exp $
# $Id: convertxsl.pl,v 1.14 2008-07-17 23:43:26 jinmei Exp $
use strict;
use warnings;
my $rev = '$Id: convertxsl.pl,v 1.14 2008/07/17 23:43:26 jinmei Exp $';
my $rev = '$Id: convertxsl.pl,v 1.14 2008-07-17 23:43:26 jinmei Exp $';
$rev =~ s/\$//g;
$rev =~ s/,v//g;
$rev =~ s/Id: //;

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: builtin.h,v 1.6 2007/06/19 23:46:59 tbox Exp $ */
/* $Id: builtin.h,v 1.6 2007-06-19 23:46:59 tbox Exp $ */
#ifndef NAMED_BUILTIN_H
#define NAMED_BUILTIN_H 1

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: client.h,v 1.86.120.2 2009/01/18 23:47:34 tbox Exp $ */
/* $Id: client.h,v 1.86.120.2 2009-01-18 23:47:34 tbox Exp $ */
#ifndef NAMED_CLIENT_H
#define NAMED_CLIENT_H 1

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: config.h,v 1.14 2007/06/19 23:46:59 tbox Exp $ */
/* $Id: config.h,v 1.14 2007-06-19 23:46:59 tbox Exp $ */
#ifndef NAMED_CONFIG_H
#define NAMED_CONFIG_H 1

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: control.h,v 1.25 2007/06/19 23:46:59 tbox Exp $ */
/* $Id: control.h,v 1.25 2007-06-19 23:46:59 tbox Exp $ */
#ifndef NAMED_CONTROL_H
#define NAMED_CONTROL_H 1

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: interfacemgr.h,v 1.33 2007/06/19 23:46:59 tbox Exp $ */
/* $Id: interfacemgr.h,v 1.33 2007-06-19 23:46:59 tbox Exp $ */
#ifndef NAMED_INTERFACEMGR_H
#define NAMED_INTERFACEMGR_H 1

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: listenlist.h,v 1.15 2007/06/19 23:46:59 tbox Exp $ */
/* $Id: listenlist.h,v 1.15 2007-06-19 23:46:59 tbox Exp $ */
#ifndef NAMED_LISTENLIST_H
#define NAMED_LISTENLIST_H 1

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: log.h,v 1.25.332.2 2009/01/07 23:47:16 tbox Exp $ */
/* $Id: log.h,v 1.25.332.2 2009-01-07 23:47:16 tbox Exp $ */
#ifndef NAMED_LOG_H
#define NAMED_LOG_H 1

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: logconf.h,v 1.17 2007/06/19 23:46:59 tbox Exp $ */
/* $Id: logconf.h,v 1.17 2007-06-19 23:46:59 tbox Exp $ */
#ifndef NAMED_LOGCONF_H
#define NAMED_LOGCONF_H 1

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: lwaddr.h,v 1.8 2007/06/19 23:46:59 tbox Exp $ */
/* $Id: lwaddr.h,v 1.8 2007-06-19 23:46:59 tbox Exp $ */
/*! \file */

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: lwdclient.h,v 1.18.332.2 2009/01/18 23:47:34 tbox Exp $ */
/* $Id: lwdclient.h,v 1.18.332.2 2009-01-18 23:47:34 tbox Exp $ */
#ifndef NAMED_LWDCLIENT_H
#define NAMED_LWDCLIENT_H 1

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: lwresd.h,v 1.19 2007/06/19 23:46:59 tbox Exp $ */
/* $Id: lwresd.h,v 1.19 2007-06-19 23:46:59 tbox Exp $ */
#ifndef NAMED_LWRESD_H
#define NAMED_LWRESD_H 1

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: lwsearch.h,v 1.9 2007/06/19 23:46:59 tbox Exp $ */
/* $Id: lwsearch.h,v 1.9 2007-06-19 23:46:59 tbox Exp $ */
#ifndef NAMED_LWSEARCH_H
#define NAMED_LWSEARCH_H 1

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: main.h,v 1.15 2007/06/19 23:46:59 tbox Exp $ */
/* $Id: main.h,v 1.15 2007-06-19 23:46:59 tbox Exp $ */
#ifndef NAMED_MAIN_H
#define NAMED_MAIN_H 1

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: notify.h,v 1.14.332.2 2009/01/18 23:47:34 tbox Exp $ */
/* $Id: notify.h,v 1.14.332.2 2009-01-18 23:47:34 tbox Exp $ */
#ifndef NAMED_NOTIFY_H
#define NAMED_NOTIFY_H 1

Some files were not shown because too many files have changed in this diff Show More