Hi,
In the internal conversion of _TM_* to TAME_*, some bits were lost for
"dns" and "cmsg" in the `tamereq' array.
The initial version of tamereq array (in 1.39) was (for interesting
bits):
{ "malloc", _TM_SELF | _TM_MALLOC },
{ "unix", _TM_SELF | _TM_RW | _TM_UNIX },
{ "dns", TAME_MALLOC | _TM_DNSPATH },
{ "cmsg", TAME_UNIX | _TM_CMSG },
and was been converted to (1.40, and -current):
{ "malloc", TAME_SELF | TAME_MALLOC },
{ "unix", TAME_SELF | TAME_RW | TAME_UNIX },
{ "dns", TAME_MALLOC | TAME_DNSPATH },
{ "cmsg", TAME_UNIX | TAME_CMSG },
but TAME_MALLOC (1.39) don't mean the same thing than TAME_MALLOC (1.40).
in 1.39, expanded flags were:
TAME_DNS = _TM_SELF | _TM_MALLOC | _TM_DNSPATH
TAME_CMSG = _TM_SELF | _TM_RW | _TM_UNIX | TAME_CMSG
The following patch restore the behaviour, and make the regress too work
again.
Comments ? OK ?
--
Sebastien Marie
Index: kern_tame.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_tame.c,v
retrieving revision 1.41
diff -u -p -r1.41 kern_tame.c
--- kern_tame.c 13 Sep 2015 17:08:03 -0000 1.41
+++ kern_tame.c 18 Sep 2015 07:41:24 -0000
@@ -218,8 +218,8 @@ static const struct {
{ "tmppath", TAME_SELF | TAME_RW | TAME_TMPPATH },
{ "inet", TAME_SELF | TAME_RW | TAME_INET },
{ "unix", TAME_SELF | TAME_RW | TAME_UNIX },
- { "cmsg", TAME_UNIX | TAME_CMSG },
- { "dns", TAME_MALLOC | TAME_DNSPATH },
+ { "cmsg", TAME_SELF | TAME_RW | TAME_UNIX | TAME_CMSG },
+ { "dns", TAME_SELF | TAME_MALLOC | TAME_DNSPATH },
{ "ioctl", TAME_IOCTL },
{ "getpw", TAME_SELF | TAME_MALLOC | TAME_RW | TAME_GETPW
},
{ "proc", TAME_PROC },