version 1.879, 2003/05/28 03:04:33 |
version 1.880, 2003/06/12 20:54:58 |
|
|
|
|
<p> |
<p> |
<h3><font color="#0000e0">We are working on OpenBSD-current.</font></h3><p> |
<h3><font color="#0000e0">We are working on OpenBSD-current.</font></h3><p> |
The following list sums up (almost) all the changes made up to May 25. |
The following list sums up (almost) all the changes made up to June 7. |
<p> |
<p> |
|
|
<ul> |
<ul> |
|
<!-- ^ 20030608 --> |
|
<li>Stop <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pfctl&sektion=8">pfctl(8)</a> (with the -ss option) printing IPv4 address/netmask pairs as a.b.c.d/128. |
|
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=identd&sektion=8">identd(8)</a> run by default as user _identd if possible, and fall back to user nobody if that fails. |
|
<li>Replace setjmp/longjmp in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=less&sektion=1">less(1)</a> with interruptible system calls. |
|
<!-- ^ 20030607 --> |
|
<li>Avoid a null deref in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=fontconfig&sektion=3">fontconfig(3)</a> when $HOME is not set. |
|
<li>Fix the addition of /usr/local/lib/X11/fonts to /etc/fonts.conf. |
|
<li>Don't use M_WAIT in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=atalk&sektion=4">atalk(4)</a>. |
|
<li>Don't forward IPv6 multicasts to an interface that's no longer around to receive them. |
|
<!-- ^ 20030606 --> |
|
<li>Add large file support to distrib/special/more. |
|
<!-- ^ 20030605 --> |
|
<li>Teach distrib/special/more how to handle arbitrarily long lines and \r\n line endings. |
|
<li>Set <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rusers&sektion=1">rusers(1)</a>' column width to 80 if stdout isn't a tty. |
|
<!-- ^ 20030604 --> |
|
<li>Add generic '-fno-builtin-<function>' option to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=gcc&sektion=1">gcc(1)</a> (see <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=gcc-local&sektion=1">gcc-local(1)</a>.) |
|
<li>Kill the parent <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssh&sektion=1">ssh(1)</a> process when <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=scp&sektion=1">scp(1)</a> or <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sftp&sektion=1">sftp(1)</a> receive a signal (OpenSSH bug <a href="http://bugzilla.mindrot.org/show_bug.cgi?id=241">241</a>.) |
|
<li>Only drop setgid privileges the once in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sshd&sektion=8">sshd(8)</a>. |
|
<li>Disable <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssh&sektion=1">ssh(1)</a> challenge/response and keyboard-interactive authentication methods if there's a host key mismatch, to reduce the likelihood of MiTM attacks catching out ignorant users (OpenSSH bug <a href="http://bugzilla.mindrot.org/show_bug.cgi?id=580">580</a>.) |
|
<li>Make <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=less&sektion=1">less(1)</a>'s --More-- prompt more --less--, less More, and more POSIX. |
|
<li>Fix distrib/special/more on machines with unsigned chars. |
|
<li>Simply and fix tty handing in /distrib/special/more. |
|
<!-- ^ 20030603 --> |
|
<li>Stop <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=event&sektion=3">event(3)</a> honouring EVENT_NOKQUEUE when running set[ug]id. |
|
<li>Disable the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ld.so&sektion=1">ld.so(1)</a> library load order randomiser, it seems to be exposing bugs elsewhere. |
|
<li>Provide a fast path for userland <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=crypto&sektion=9">crypto(9)</a> requests, bypassing the kernel queues where possible. |
|
<li>Add some tag-related utility functions in kernel <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&sektion=4">pf(4)</a>. |
|
<!-- ^ 20030602 --> |
|
<li>In <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pfctl&sektion=8">pfctl(8)</a> process 'show' options before options that change the rulebase. |
|
<li>Huge license cleanup all over the tree. |
|
<li>Fix random lockups of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=cac&sektion=4">cac(4)</a> devices. |
|
<li>Deprecate the dangerous VerifyReverseMapping <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sshd&sektion=8">sshd(8)</a> option, and replace with new UseDNS option (enabled by default.) |
|
<li>Install OpenSSL include files in /usr/include/openssl instead of ../ssl. |
|
<li>Remove the advertising clause from many license statements. |
|
<li>Use <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=getopt_long&sektion=3">getopt_long(3)</a> for <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=getopt&sektion=3">getopt(3)</a>, instead of the old implementation. |
|
<li>Remove a potential double-free from <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=systrace&sektion=1">systrace(1)</a>. |
|
<!-- ^ 20030602 --> |
|
<li>Fix a bad string bounds check in libedit. |
|
<li>String cleaning bootblocks for all architectures. Now only bind and src/gnu use unsafe string functions. |
|
<li>Fix a few long-missing initialisations, so we don't end up using random stack noise as a hint to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=uvm_map&sektion=9">uvm_map(9)</a> via uvm_km_suballoc(). |
|
<li>Improve <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ddb&sektion=4">ddb(4)</a>'s symbol table lookup algorithm. |
|
<!-- ^ 20030601 --> |
|
<li>Properly mask off all but the last 8 bits of status in WSTOPSIG and WEXITSTATUS. |
|
<li>Add preliminary LBA support to the i386 bootloader. |
|
<!-- ^ 20030531 --> |
|
<li>Build a dynamic <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=com_err&sektion=3">com_err(3)</a> library. |
|
<li>Add <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pmdb&sektion=1">pmdb(1)</a> to the default build. |
|
<li>Fix timeout signedness bugs in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=brconfig&sektion=8">brconfig(8)</a> and <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bridge&sektion=4">bridge(4)</a>. |
|
<li>Some deeper string cleaning in bind9. |
|
<li>Stop <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pmdb&sektion=1">pmdb(1)</a> dumping core when the program to be run doesn't exist. |
|
<li>Add LD_NORANDOM to the list of environment variables that get zapped when running setuid/setgid. |
|
<li>Load dynamic libraries in random order, to reduce the probability of an attacker guessing the address of the loaded code. Define LD_NORANDOM to disable. |
|
<!-- ^ 20030530 --> |
|
<li>Make <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhclient&sektion=8">dhclient(8)</a> more robust by accept non-DHCPNAK messages with yiaddr=0.0.0.0, as sent by some common DHCP servers that ignore the RFC. |
|
<li>Reorder the sections in many manpages. |
|
<li>Use <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=seteuid&sektion=2">sete[ug]id(2)</a> as well as set[ug]id() in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssh&sektion=1">ssh(1)</a> when doing privsep and when permanently setting the [ug]id. |
|
<li>When setting the tcp6 mss, fetch the link mtu using IN6_LINKMTU() (which takes neighbour discovery mtu settings into account) instead of always using the interface mtu. |
|
<li>Allow numeric uid and gid in systrace, and '<' and '>' operators for ids. |
|
<li>Add support for IPv6 jumbograms. |
|
<li>Fix some bugs IPv6-related bugs in tcp_trace(). |
|
<!-- ^ 20030529 --> |
|
<li>Incorporate distrib/special/more's helpfile into the program itself. |
|
<li>Fix the endianness of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=fxp&sektion=4">fxp(4)</a>'s statistics for netstat -i. |
|
<li>Fix tab expansion, handle EDITOR not being a full pathname, and much cleanup in distrib/special/more, |
|
<!-- ^ 20030528 --> |
|
<li>Add pthread support for vax. |
|
<li>Don't risk an M_WAIT deadlock when processing raw IP output. |
|
<li>Make libwrap check for <a href="http://www.kame.net/newsletter/20030527/">bogus PTR records</a> containing numeric IP address in string form. |
|
<!-- ^ 20030527 --> |
|
<li>Make <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=df&sektion=1">df(1)</a> use the new <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=fmt_scaled&sektion=3">fmt_scaled(3)</a> stuff in libutil. |
|
<!-- XXX query src/sys/arch/i386/include/pmap.h#rev1.33 --> |
|
<li>Fix a few bad *printf format strings in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssh&sektion=1">ssh(1)</a>. |
|
<li>Install the mod_ssl headers under /usr/lib/apache/include/ |
|
<li>Add IPv6 support to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=trpt&sektion=8">trpt(8)</a>. |
<!-- ^ 20030526 --> |
<!-- ^ 20030526 --> |
<li>Fix <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=xdm&sektion=1">xdm(1)</a>'s XDMCP queries (XFree86 bug <a href="http://bugs.xfree86.org/cgi-bin/bugzilla/show_bug.cgi?id=277">#277</a>.) |
<li>Fix <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=xdm&sektion=1">xdm(1)</a>'s XDMCP queries (XFree86 bug <a href="http://bugs.xfree86.org/cgi-bin/bugzilla/show_bug.cgi?id=277">#277</a>.) |
<li>Unbreak <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&sektion=4">pf(4)</a> binat rules after recent netmask check changes. |
<li>Unbreak <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&sektion=4">pf(4)</a> binat rules after recent netmask check changes. |
|
|
<!-- ^ 20030523 --> |
<!-- ^ 20030523 --> |
<li>Remove unsafe <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sprintf&sektion=9&manpath=OpenBSD+3.3">sprintf(9)</a> and vsprintf() functions from the kernel. |
<li>Remove unsafe <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sprintf&sektion=9&manpath=OpenBSD+3.3">sprintf(9)</a> and vsprintf() functions from the kernel. |
<!-- ^ 20030522 --> |
<!-- ^ 20030522 --> |
<li>Ignore media changes for the first command issued to an <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sd&sektion=4">sd(4)</a> device. |
<li>Ignore media changes for the first command issued to an <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sd&sektion=4">sd(4)</a> device. See the <a href="http://www.openbsd.org/cgi-bin/cvsweb/src/sys/scsi/sd.c#rev1.61">checkin comment</a> for details. |
<li>Match kernel <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=vprintf&sektion=9">vprintf(9)</a> prototype to that of userland. |
<li>Match kernel <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=vprintf&sektion=9">vprintf(9)</a> prototype to that of userland. |
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=getconf&sektion=1">getconf(1)</a> return _POSIX_PATH_MAX instead of _POSIX_PIPE_MAX when asked for the former. |
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=getconf&sektion=1">getconf(1)</a> return _POSIX_PATH_MAX instead of _POSIX_PIPE_MAX when asked for the former. |
<!-- ^ 20030521 --> |
<!-- ^ 20030521 --> |
|
|
<li>Fix media handling for Intel <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dc&sektion=4">dc(4)</a> devices. |
<li>Fix media handling for Intel <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dc&sektion=4">dc(4)</a> devices. |
<!-- ^ 20030517 --> |
<!-- ^ 20030517 --> |
<li>Use the right buffer in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=spamd&sektion=8">spamd(8)</a>'s connection handler. |
<li>Use the right buffer in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=spamd&sektion=8">spamd(8)</a>'s connection handler. |
<li>Use <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mmap&sektion=2">mmap(2)</a> instead of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=malloc&sektion=3">malloc(3)</a> in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=vfprintf&sektion=3">vfprintf(3)</a> when more memory is needed to store arguments. |
<li>Use <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mmap&sektion=2">mmap(2)</a> instead of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=malloc&sektion=3">malloc(3)</a> in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=vfprintf&sektion=3">vfprintf(3)</a> when more memory is needed to store arguments. See the <a href="http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdio/vfprintf.c#rev1.19">checkin comment</a> for why. |
<li>New Renegotiate-on-HUP option for the [general] section of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=isakmpd.conf&sektion=5">isakmpd.conf(5)</a> will cause all Phase 2 SAs to be renegotiated. |
<li>New Renegotiate-on-HUP option for the [general] section of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=isakmpd.conf&sektion=5">isakmpd.conf(5)</a> will cause all Phase 2 SAs to be renegotiated. |
<li>Fix a couple of signedness nits in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ksh&sektion=1">ksh(1)</a>. |
<li>Fix a couple of signedness nits in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ksh&sektion=1">ksh(1)</a>. |
<li>Improvements to USB SCSI support. |
<li>Improvements to USB SCSI support. |
|
|
<li>Update <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sudo&sektion=8">sudo(8)</a> to 1.6.7p5. |
<li>Update <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sudo&sektion=8">sudo(8)</a> to 1.6.7p5. |
<li>Add support for the userland portions of XFree86 <a href="http://dri.sourceforge.net/">DRI</a>. Not yet enabled by default. |
<li>Add support for the userland portions of XFree86 <a href="http://dri.sourceforge.net/">DRI</a>. Not yet enabled by default. |
<li>In <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=csh&sektion=1">csh(1)</a>, null-terminate the string returned by <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=readlink&sektion=2">readlink(2)</a> before passing it on. |
<li>In <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=csh&sektion=1">csh(1)</a>, null-terminate the string returned by <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=readlink&sektion=2">readlink(2)</a> before passing it on. |
<li>Fix <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mmap&sektion=2">mmap(2)</a>'ing of the dynamic linker hints file when the file size exceeds one page. |
<li>Fix <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mmap&sektion=2">mmap(2)</a>'ing of the dynamic linker hints file when the file size exceeds one page.<br> |
|
<a href="stable.html"><font color="#00b000">[Applied to stable]</font></a> <!-- XXX 3.3-stable --> |
<li>Stop <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=gcc&sektion=1">gcc(1)</a> from inlining <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=strcpy&sektion=3">strcpy(3)</a> so it can be more easily spotted in object files. |
<li>Stop <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=gcc&sektion=1">gcc(1)</a> from inlining <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=strcpy&sektion=3">strcpy(3)</a> so it can be more easily spotted in object files. |
<!-- ^ 20030508 --> |
<!-- ^ 20030508 --> |
<li>Add missing device name parameter when printing a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=nofn&sektion=4">nofn(4)</a> RNG underflow error. |
<li>Add missing device name parameter when printing a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=nofn&sektion=4">nofn(4)</a> RNG underflow error. |
|
|
<!-- ^ 20030507 --> |
<!-- ^ 20030507 --> |
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rdist&sektion=1">rdist(1)</a> use POSIX <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=regex&sektion=3">regex(3)</a>. |
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rdist&sektion=1">rdist(1)</a> use POSIX <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=regex&sektion=3">regex(3)</a>. |
<li>Update <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rdist&sektion=1">rdist(1)</a> to cope with <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rcmdsh&sektion=3">rcmdsh(3)</a>'s new ability to handle command line options. |
<li>Update <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rdist&sektion=1">rdist(1)</a> to cope with <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rcmdsh&sektion=3">rcmdsh(3)</a>'s new ability to handle command line options. |
<li>Make <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&sektion=4">pf(4)</a> rdr and binat rules work again on protocols other than TCP, UDP and ICMP. |
<li>Make <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&sektion=4">pf(4)</a> rdr and binat rules work again on protocols other than TCP, UDP and ICMP.<br> |
|
<a href="stable.html"><font color="#00b000">[Applied to stable]</font></a> <!-- XXX 3.3-stable --> |
<li>After a forced unmount, try to change process back into real directories now that namei() won't do lookups under the old mountpoint. |
<li>After a forced unmount, try to change process back into real directories now that namei() won't do lookups under the old mountpoint. |
<li>Stop namei() doing lookups on unmounted volumes, prevents crashes with forced unmounts. From NetBSD. |
<li>Stop namei() doing lookups on unmounted volumes, prevents crashes with forced unmounts. From NetBSD. |
<li>Don't use M_WAITOK to sleep on failures when allocating hashtables for IP protocols (in_pcbinit()). Fail and panic. |
<li>Don't use M_WAITOK to sleep on failures when allocating hashtables for IP protocols (in_pcbinit()). Fail and panic. |
|
|
<li>Be more portable and check the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=asprintf&sektion=3">asprintf(3)</a> return value against -1 in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pfctl&sektion=8">pfctl(8)</a>. |
<li>Be more portable and check the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=asprintf&sektion=3">asprintf(3)</a> return value against -1 in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pfctl&sektion=8">pfctl(8)</a>. |
<li>Add size bounds to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sscanf&sektion=3">sscanf(3)</a> strings in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=edquota&sektion=8">edquota(8)</a> and <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=tn3270&sektion=1">tn3270(1)</a>. |
<li>Add size bounds to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sscanf&sektion=3">sscanf(3)</a> strings in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=edquota&sektion=8">edquota(8)</a> and <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=tn3270&sektion=1">tn3270(1)</a>. |
<li>Match <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mquery&sektion=2">mquery(2)</a>'s function signature to that of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mmap&sektion=2">mmap(2)</a>. |
<li>Match <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mquery&sektion=2">mquery(2)</a>'s function signature to that of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mmap&sektion=2">mmap(2)</a>. |
<li>Fix <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&sektion=4">pf(4)</a> nat proxy port allocation for manually specified ranges. |
<li>Fix <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&sektion=4">pf(4)</a> nat proxy port allocation for manually specified ranges.<br> |
|
<a href="stable.html"><font color="#00b000">[Applied to stable]</font></a> <!-- XXX 3.3-stable --> |
<li>If one is given, properly copy the second port of a nat proxy spec in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pfctl&sektion=8">pfctl(8)</a>. |
<li>If one is given, properly copy the second port of a nat proxy spec in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pfctl&sektion=8">pfctl(8)</a>. |
<!-- ^ 20030425 --> |
<!-- ^ 20030425 --> |
<li>Fix a bad <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=strlcpy&sektion=3">strlcpy(3)</a> bound in the AFS library (PR#3228.) |
<li>Fix a bad <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=strlcpy&sektion=3">strlcpy(3)</a> bound in the AFS library (PR#3228.) |