Lanzamiento de OpenBSD 3.4 (1 de noviembre de
2003)
Esta es una lista parcial de los cambios independientes de la
arquitectura (esto es, por los que la gente pregunta más
frecuentemente). También se han hecho cambios específicos
de cada "port"; sobre algunos de estos cambios puede encontrar
alguna mención en las páginas específicas de cada
plataforma de hardware.
Las modificaciones realizadas a la colección
de portes y paquetes está documentada
aquí.
Nota: Los problemas para los que se dispone de un parche están marcados en rojo.
Para consultar las modificaciones realizadas en otras versiones, pulse a continuación:
2.0,
2.1,
2.2,
2.3,
2.4,
2.5,
2.6,
2.7,
2.8,
2.9,
3.0,
3.1,
3.2,
3.3,
OpenBSD-current.
Cambios realizados entre OpenBSD 3.3 y OpenBSD
3.4
- CORRECCIÓN DE SEGURIDAD: Un desbordamiento de buffer al analizar direcciones de correo en sendmail(8) puede hacer que un atacante obtenga privilegios de root.
Se dispone de un parche para el código fuente.
[Aplicado a la rama estable]
- Subimos de version OpenSSH a v3.7.1 después de corregir los problemas de manejo de buffers.
- CORRECCIÓN DE SEGURIDAD: Todas las versiones de OpenSSH anteriores a la v3.7 tienen un error en el código de manejo de buffers de sshd. No está claro si este error es o no explotable.
Se dispone de un parche para el código fuente.
[Aplicado a la rama estable]
- En i386 no intentamos habilitar EDD si la BIOS no soporta acceso extendido a disco (extended disk access).
- CORRECCIÓN DE SEGURIDAD: Root puede reducir el nivel de seguridad aprovechando el desbordamiento de un entero cuando las cotas de los semaforos son muy grandes.
Se dispone de un parche para el código fuente.
[Aplicado a la rama estable]
- Pasamos -a a fgrep(1) en Texinfo para asegurarnos de que los ficheros info no son tratados como binarios.
- Hacemos que grep(1) compruebe el valor de error correcto de mmap(2), corrigiendo una caída.
- Asignamos espacio suficiente para sysctl(3) en pstat(8).
- Corregimos orden de bits de la salida de paquetes icmp echo en tcpdump(8)
- Hacemos coincidir los códigos ioctl de AFS en espacio de usuario y del núcleo, permitiendo activar depuración del kernel desde afsd(8) (PR#3442.)
- Replicamos en el sha2(3) de libc la corrección de contexto de sha2 hecha en crypto(9)
Hacemos que diff(1) nos devuelva un error al pasarle la opción "-<num>" (no válida).
- Corregimos el tratamiento de la opción "-<num>" en grep(1) cuando num tiene más de un dígito.
- Resucitamos la sintaxis unificada -u<num> de longitud de contexto para diff(1).
- grep(1) utiliza más bytes del fichero para comprobar si es binario.
- En diff(1) comprobamos algo más que el primer caracter del fichero de entrada para averiguar si es ASCII.
- Hacemos que pppctl(8) deje de provocar cores (PR#3454.)
- Corregido un cuelgue en 'boot -a' (PR#2122, PR#3437.)
- Hacemos que el script de actualización realice el cambio de directorio de ficheros de cabecera ssl->openssl, tanto en /usr/include como en/usr/libdata/perl5/site_perl/*-openbsd.
- Hacemos que strxfrm(3) cumpla con los estándares.
- Incluímos y/o actualizamos notas de instalación dependientes de máquina. Obsérvense especialmente las instrucciones de actualización para i386.
- Incorporamos una función wi_detach() para, este, wi(4) que utilizamos para apagar debidamente PC cards.
- Sincronizamos la base de datos pf.os(5) con la versión 2.0 de p0f.
- Hacemos que compress(1) pueda leer de un enlace simbólico mientras escribe en stdout (PR@3409.)
- Solamente activamos la advertencia del comprobador de límites de gcc(1) si el tamaño del límite a comprobar es menor de cero, ya que hay varios usos lícitos de código en el caso de que fuese cero.
- Corregimos varios errores en las herramientas pkg_* (PR#3414.)
- No perdemos un socket en la ruta de error de setsockopt en isakmpd(8).
- Incluímos definición SMALL en compress(1) que elimina partes el instalador no necesita.
- Incorporamos el compresor null en compress(1) para que gzcat funcioe sobre ficheros no comprimidos.
- Corregimos una pérdida de FILE* en sup(1).
- Solucionamos un crash en netstat(1) incorporando las descripciones de tipos ICMP hasta ICMP_MAXTYPE (PR#3439.)
- Corregimos alguna lógica de ld.so(1) para que siempre se aplique W^X a las GOT y PLT.
- Incluida una caché de búsqueda en la GOT dentro de ld.so(1).
- Corregimos unos cuantos bzero(sizeof pointer) más.
- Correciones de seguridad en ficheros temporales de sup(1).
- Incluidas llamadas al sistema ficticias para *xattr bajo emulación Linux, todas devuelven ENOATTR.
- Hacemos opcional la característica de spamd(8) de ventana de recepción pequeña (ver PR#3435.)
- Corregidas pérdidas de memoria en lpd(8) y lpq(1) (PR#3425.)
- Corregimos en el código sha2 de crypto(9) los argumentos pasados al hacer un bzero(3) con sizeof(puntero).
- Incorporamos a ubsec(4) soporte para el acelerador ciptográfico Broadcom BC5823.
- Disponemos de imágenes propias de OpenBSD 3.4 para xdm(1).
- Damos un nombre más aleatorio aleatorio al directorio con el fichero de errores de xdm(1) (cuando está bajo /tmp o /var/tmp).
- Solventamos una inicialización omitida en faithd(8), y pedimos específicamente un socket en el caso de que getaddrinfo(3) soporte SCTP. De Kame.
- Utilizamos poll(2) en vez de select(2) en faithd(8).
- Aumentamos hasta 5s el timeout de negociación de eephy(4) para que los switches lentos basados en cobre funcionen. Soluciona problemas de arranque en sk(4).
- Modificamos vi(1) para que utilice un fd_set dinámico en los select(2) en modo curses, y poll(2) en modo ex(1).
- Ajustes más conservadores y comprobaciones de error adicionales en aac(4) para mejorar su fiabilidad.
- 3.4-beta -> 3.4.
- Deshabilitamos el código patentado del intérprete de bytecode TrueTipe en freetype.
- Sincronizamos las correcciones en el desboramiento de enteros en el fontconfig de X con las correcciones disponibles en el repositorio de XFree86.org.
- Añadimos "?" y "!" como caracteres de puntuación en mdoc(7). Se han actualizado muchas pequeñas páginas del manual para reflejar este cambio.
- Requerimos cifrado para todos los mensajes de Fase 2 de isakmpd(8)
- Sumamos un desplazamiento aleatorio entre 0-256M a las direcciones que uvm_map_hint() devuelve a uvm_map(9), que lo dispersa entre las bibliotecas y mmap().
- Corregimos llamadas suser() al viejo estilo en atalk(4).
- Corregimos un uso después de liberar memoria en el check_expire(3) de libutil.
- Subimos la versión de OpenSSH a 3.7.
- Corregida la búsqueda de símbolos en objetos que se han abierto con dlopen(3) (PR#3371.)
- Añadimos definiciones RTLD_* compatibles con Solaris en <dlfch.h>.
- Solucionamos una pérdida de memoria en la autenticación GSSAPI de sshd(8)
- Nueva opción +o 'emacs-usemeta' para ksh(1) que permite la entrada de caracteres de 8-bits en modo emacs.
- Incorporamos la llamada al sistema ficticia fadvise64() bajo emulación de Linux, por compatibilidad con libc recientes.
- Hacemos que las reglas de traducción de pf(4) actualicen los contadores de las tablas, ya que es el único lugar en el que puede hacerse para una regla "pass" de nat.
- En la cofiguración del servidor X en Alpha, deshabilitamos por ahora el módulo freetype tendente a causar fallos de segmento.
- Ya que freetype puede también representar fuentes Type 1, eliminamos el módulo obsoleto type1 de las configuraciones por defecto del servidor X.
- Realizamos unas pocas correcciones de GSSAPI en ssh(1).
- Solucionamos el truncamiento de nombres de fichero por el indicador de progreso de ssh(1)
- Arreglamos la detección del indicador -a en mopd(8)
- Aplicamos a los servidores XFreee 3.3.6 las correcciones hechas en las bibliotecas de fuentes.
- Incorporarmos correcciones de XFree 4.3 a una serie de desbordamientos de enteros en potencia en las bibliotecas de fuentes.
- Eliminamos tres intentos de uso después un free() en el código scrub de pf(4)
- Quitamos algunas comprobaciones en pfctl(8) que no funcionaban en arquitecturas big-endian.
- isakmpd(8) ahora también soporta AES para fase 1.
- Eliminamos soporte de Kerberos del código de SSHv1 en favor de GSSAPI, pero mantenemos la autenticación de clave de acceso Kerberos en SSHv1 y SSHv2.
- Corregimos un argumento de tamaño erróneo de bzero(3) en dc(4).
- Corregimos la salida de pfctl(8) -vvsr para tablas incluídas dentro de anclajes.
- Arreglamos una inicialización faltante en microcódigo de aic(4). De NetBSD.
- Arreglamos algunas pérdidas de memoria en sup(1).
- Actualizamos la base de datos pf.os(5)
- Eliminamos un else en el códido de identificación de Sist. Operativos, corrigiendo las opciones M y W.
- Incluímos algunas asociaciones de teclas omitidas al importar XFree 4.3.0,
- Hacemos que la identificación de Sist. Operativos en pf(4) deje paso a los routers DSL y NAT "inteligentes" que alteran el mss de tcp.
- Escapamos cualquier caracter especial en la salida de la función de ksh(1) en modo emacs 'expand-file'.
- Eliminamos un montón de módulos de httpd(8) que no utiliza OpenBSD.
- No asignamos el nombre del host desde /etc/myname a menos que este fichero exista. Los sistemas que arrancan de red no lo necesitan.
- Instalamos la documentación USD de sed(1).
- Corregimos el manejo de la directiva @cwd en pkg_create(1).
- Suprimimos el indicador RNF_IGNORE de route(4)
- Hacemos que pfctl(8) se atragante con los operadores binarios de rango de puertos (<>, ><) a menos que el primero puerto pasado sea menor que el segundo.
- Reincorporamos el registro de coincidencias en la lista negra de spamd(8).
- Arreglamos en el modo emacs de ksh(1) forward- and backwards-delete.
- Hacemos un cálculo de clave ficticia para nombres de usuario inexistentes en sshd(8), para prevenir el descubrimiento de nombres de usuario por cronometraje.
- Añadimos a route(4) el nuevo indicador RTF_CLONED(se muestra con una 'c' en netstat(1)), que se activa en rutas clonadas y se utiliza para eliminarlas cuando el padre se marcha.
- Por defecto no insertamos la cadena completa de gcc(1) en objetos (ver -findent en gcc-local(1).).
- Hacemos que pfctl(8) no permita valores de ttl mayores de 255 para return-rst.
- Incluímos una rutina de inicialización de interfaz a la estructura ifinet, necesaria para soportar 802.11.
- Corregimos una división entre cero en la implementación de ls dentro de sftp(1)
- Corregidas las contrucciones estáticas de ssh(1).
- Limpieza 64bits en el nuevo código GSSAPI de ssh(1).
- Hacemos que pfctl(8) deje de rechazar reglas nat-con-tablas perfectamente legítimas.
- Al usar tablas en reglas de routing de pf(4) con pooles de direcciones, sólo permitimos modo round-robin.
- Estructuras y definiciones para el marco igenérico IEEE 802.11.
- "Implementamos" pread(2) y pwrite(2) bajo emulación FreeBSD (son idénticas a las llamadas nativas).
- En el instalador, si una interfaz se configura mediante DHCP asumimos que la ruta por defecto también se configura mediante DHCP.
- Mejoras en spamd(8):
- Nueva opción -s para especificar el retado en segundos entre cada caracter enviado.
- Acortamos la ventana de recepción TCP ajustandola a un byte, afectando a la pila del emisor.
- Mantenemos las conexión abierta hasta recibir diez líneas del cuerpo del mensaje de correo.
- Registro de bitácoras mejorado mediante syslog.
- Utilizamos el formato correcto para imprimir valores de tiempo en spamd(8)
- Verificamos el tamaño máximo de la cabecera de un ejecutable después de cargar o descargar lkm(4), ya que el módulo podría haberlo cambiado.
- Permitimos que las emulaciones activadas mediante sysctl(8) puedan desactivarse.
- Corregido un error al completar nombres de fichero en modo emacs de ksh(1)
- Corregida ruptura de 64 bits en la salida de los contadores pfctl(8).
- Construimos sendmail(8) con soporte para timeouts específicos por DSN, para que a los mensajes rebotados se les termine antes el tiempo de espera.
- Corregida la detección de final de palabra en ksh(1).
- Eliminado soporte para el mecanismo de autenticación kerberos-2@ssh.com en ssh(1) y sshd(8), que ha dejado obsoleto GSSAPI.
- Incorporamos autenticación GSSAPI a ssh(1) y sshd(8).
- No envejecemos las rutas IPv6 hacia equipos que no sean gateways (NetBSD PR bin/22568.)
- Nuevas palabras clave @extra y @extraunexec para pkg_create(1), que especifican ficheros "extra" que sólo pueden restaurarse tras borrarlos con pkg_delete -c.
- tcpdump(8) ya puede mostrar el Sistema Operativo que envía paquetes TCP SYN especificando la opción -o.
- Incorporamos a pf(4) la capacidad de realizar "OS fingerprinting" pasivamente mediante la palabra clave "os"-
- Incluímos la base de datos pf.os(5) para "OS fingerprinting" pasivo.
- Incorporamos kernel.emul.* a sysctl(8) para (des)activar distintas emulaciones de sistemas operativos, en vez de utilizar opciones en el momento de compilar.
- Corregimos error de apache num. #21737i (zombie suexec processes) volviendo al comportamiento de la version 1.3.27.
- Incorporamos Apache 1.3.28 y mod_ssl 2.8.15.
- spamd(8) utiliza por defecto utilizamos spamhaus en vez de spaws.
- En libcripto, podemos sumar cero más cero usando numeros grandes sin corromper el resultado.
- Portamos una corrección a un error difícil en g++(1) que hace saltar propolice.
- PARCHE DE FIABILIDAD: una comprobación de límites incorrecta en la llamada al sistema semget(2) puede hacer que un usuario local pueda provocar un pánico en el kernel.
Se dispone de un parche para el código fuente.
[Aplicado a la rama estable]
- pfctl(8) no permite colas que se especifiquen a sí mismas como colas hijas.
- Hacemos que pfctl(8) imprima mensajes de error más útiles al encontrar definiciones de cola incorrectas y prioridades CBQ no válidas.
- Convertimos las llamadas a select(2) de bootpd(8) a llamadas a poll(2).
- Aumentamos el valor por defecto de FD_SETSIZE de 256 a 1024.
- Ajustamos debidamente el timeout para FTP activo bajo faithd(8).
- Cambiamos ioctl(...SIOCFIGCONF...) por getifaddrs(3) en multitud de lugares.
- Incorporamos manejo dinámico de fd_sets para select(2) en ypbind(8).
- Cambiamos las llamadas select(2) por llamadas a poll(2) en map-mbone(8), mrinfo(8), mtrace(8), pppctl(8) y timed(8)
- Corregida una continuidad en un case de SIOCSIFADD a SIOCIFFLAGS en tl(4), tx(4) y wb(4).
- Además de recomendar el uso de su(1) en lugar de hacer login como root, sugerimos claramente que el usuario lea la página del manual afterboot(8). Si esto no funciona, podemos usar banner(1)...
- Modificamos /etc/mtree/4.4BSD.dist para reflejar el cambio de /usr/include/ssl a /usr/include/openssl.
- Nuevo controlador mtd(4) para las tarjetas Fast Ethernet 3-1 de Myson Technologies. Portado de NetBSD.
- Nueva definición NOFONTS para XF4, hace que no se construyan las fuentes.
- Realizamos la búsqueda de targets usando el PATH de la shell en pmdb(1).
- Realizamos un tzset(3) en syslogd(8) antes del chroot.
- Dejamos de tratar los URL creados por PGK_PATH como si se refirieran a ficheros locales en pkg_info(1) en syslogd(8) antes del chroot.
- Dejamos de tratar los URL creados por PGK_PATH como si se refirieran a ficheros locales en pkg_info(1).
- Hacemos que la opción -a de pkg_info(1) sólo busque paquetes instalados.
- Hacemos que pfctl(8) detecte max-mss > 65525 sin sentido en reglas de scrub.
- No reenviamos una copia de un paquete broadcast o multicast a una interfaz simplex si tiene lugar routing pf(4), para prevenir bloqueos.
- Habilitamos la opción larga --initial-tab en diff(1) escribiéndola correctamente.
- Usamos sólamente sysctl(3) para resolver arc4random(3) utilizando la función del kernel arc4random(). No seguimos chingando con /dev/arandom.
- Incorporamos unas cuantas órdenes de emacs al modo dired de mg(1).
- Recuperamos listados en modo dired de mg(1).
- En el kernel, cambiamos los arguments a suuser(), e incorporamos el nuevo suser_ucred() para instancias en las que el llamador no tenga un proceso.
- Nueva opción -S de pkg_create(1), como -s pero mejor.
- Ponemos a cero las entradas de directorio no utilizadas de los sistemas de ficheros FAT12 y FAT16, para evitar rupturas en Win2K y WinXP (PR#3400.)
- Incorporamos unas cuantos *stubs* en llamadas al sistema, e implementamos exit_gruop() baja emulación Linux. Necesario para los nuevos binarios glibc.
- Corregimos errores, pérdidas de memoria y un panic al leer directorios bajo emulación de otros sistemas operatovos en algunos sistemas de ficheros.
- Hacemos que ssh-keygen(1) termina correctamente después de seleccionar candidatos a numeros primos (opción -T).
- Limpieza intensa en el nuevo controlador safe(4)Incorporamos a sys/time.h la estructura itimerspecs obligados por POSIX.
- Instalamos la guía de afinación de sendmail(8) (n.t: Sendmail Tuning Guide)
- Optimizamos diff(1) para hacer un mejor uso de la memoria.
- Elimitamos de ssh(1) la característica desaconsejada RhostsAuthentication.
- Utilizamos tcsendbreak(3) en sshd(8) en lugar de ioctl(...TIOCSBRK...), por motivos de portabilidad.
- Modificamos rshd(8) para utilizar llamadas a poll(2) en lugar de select(2).
- No pasamos aciegas FD_SETSIZE como primer argumento de select(2), esto es malo vale ?
- Nuevo controlador safe(4) para el acelerador criptográfico SafeNet. De FreeBSD.
- Eliminamos bastantes cosas de AFS que OpenBSD no utiliza.
- Incorporamos xfs de ARLA-current a fecha de 20030805
- Hacemos que pkg_create(1) deje de borrar el último checksum de CONTENTS.
- Acabamos con un panic al crear un dispositivo de tipo bloque en un sistema de archivos lleno (NetBSD PR#22419.)
[Aplicado a la rama estable]
- ftp(1), rsh(1) y talk(1) a partir de ahora utilizan poll(2) en lugar de select(2).
- Recuperamos DIOCCHANGEADDR de pf(4)
[Aplicado a stable]
- Damos unos cuantos retoques para hacer más robusto frente al splam el ejemplo de configuración de sendmail(8) en cf/courtesan.mc.
- Asignamos fd_set dinámicamente con select(2) en nfsd(8).
- Manejamos de buena forma los fallos de realloc(3) en el tokenizador de kibedit.
- 3.3-current -> 3.4-beta.
- Implementamos CLOCK_MONOTONIC para clock_gettime(2). De NetBSD.
- NO unimos un dispositivo le(4) en el caso de no poder establecer su interrupción.
- patch(1) deja de añadir caracteres de nueva línea inesperados al final de su salida.
- patch(1) avisa en el caso de que un diff contextual o unificado no diponga de contexto, ya que hace imposible detectar un parche previamente aplicado.
- Eliminamos uvm_useracc() de uvm(9).
- Eliminamos un desbordamiento por un elemento en vacation(1).
- Permitimos utilizar tablas en las reglas de traducción y routing de pf(4)
- En diff(1), realizamos la asignación de memoria inicial utilizando una estimación del tamaño del fichero.
- Solucionamos unas cuantas deferencias ponenciales a null en isakmpd(8).
- patch(1) deja de sondear por dos veces el fichero de entrada.
- Deshabilitamos la optimización de código en gcc(1), habilitada con -fexpensive-optimizations y por tanto también por -O2, en aquellas plataformas en las que generaba código erróneo.
- Arreglamos algunas pérdidas de memoria en ed(1).
- Permitimos utilizar AES con 192 y 256 bits en crypto(4).
- Utilizamos setusercontext(3) en httpd(8) en vez de averiguarlo por nuestra cuenta, de modo que los valores de login.conf(5) sean aplicables.
- Hacemos que el código de coincidencia de pf(4) utilice valores de uid y gid de 32 bits adecuadamente.
- Hacemos que net.inet6.ip6.redirect de sysctl(3) funcione como se espera de él.
- Corregimos un problema en potencia de utilización-después-de-liberar en el código de redirección de icmp6.
- Corregimos un código de salida anómalo en ohci(4).
- Arreglamos pérdidas de memoria en modload(8), pkg_add(1) y usb(4).
- Incluímos la opción -i en ls(1) para ver longitudes de forma legible por humanos.
- La comprobación -Wbounded de gcc(1) no puede manejar tamaños de longitud variable todavía, por lo que no la usamos.
- Ahora que la información se ha copiado a su lugar, hacemos que mount(8) muestre información de procfs.
- Hacemos que procfs copie sus opciones en stats.mount_info.
- Incluímos una opción de depuración en patch(1) que fuerza a utilizar el plan B.
- En el plan A de patch(1), utilizamos mmap(2) en vez de read(2)/malloc(3).
- Pasamos de strlcpy() -> strncpy() en bos(8), desreventando el protocolo de línea de AFS.
- Incorporamos ARLA-current, asignamos la versión 'arla-20030805'.
- Actualizamos systrace(1) desde NetBSD y monkey.org.
- Añadimos un close() omitido en el exec() de libsa.
- Utilizamos strlcpy(3) para garantizar que el nombre de proceso del coredump termine en null.
- Implementamos el indicador WCONTINUED en wait*(2), de acuerdo con POSIX. Adaptado de FreeBSD.
- Corregimos también truncate64() en emulación de Linux.
- Eliminamos GNU gzip del árbol.
- Nuevo script znew(1) con licencia BSD.
- Comprobamos debidamente el resultado de leer y escribir en procesos en pmdb(1).
- Hacemos que la orden yank-pop de ksh(1) en modo Emacs deje de producir un core al ejecutarlo dos veces seguidas (PR#3384.)
- Emulamos correctamete ftruncate64() de Linux.
- CORRECCIÓN DE SEGURIDAD: Hay un error de sobrepasamiento por una unidad en la función realpath(3) de la biblioteca de C. Este mismo error produjo un compromiso de la cuenta de root en el servidor ftp wu-ftp, por lo que es posible que permita a un atacante aumentar sus privilegios en OpenBSD.
Se dispone de un parche para el código fuente.
[Aplicado a la rama estable]
- Damos marcha atrás en el cambio al itimer de phthreads (excepto al hacer profiling) por motivos de compatibilidad.
- Incorporamos definiciones con el atributo __bounded__ (véase gcc-local(1)) a muchas funciones de biblioteca.
- No mostramos un mensaje de advertencia sin importacia al ejecutar vi(1) en modo de sólo lectura.
- Nuevo indicador de pkg_delete(1) que no comprueba el checksum antes de eliminar los ficheros de un paquete.
- sk(4) soporta dispositivos basados en Marvell.
- Creamos tickets de tabla de pf(4) por cada juego de reglas, en vez de crearlos globalmente.
- Eliminamos comportamiento no documentado '-p' == '-p0' en patch(1), al igual que en GNU patch y en concordancia con POSIX.
- Reparamos el manejo de vías de acceso relativas en patch(1) no destruyendo un parámetro necesario posteriormente en la función.
- Modificamos la función de dispersión utilizada internamente por diff(1) para que produzca menos colisiones.
- Separación de privilegios en syslogd(8). Obsérvese el nuevo comportamiento de HUP.
- patch(1) se queja de líneas no existentes como máximo una vez por vía de acceso.
- Nos aseguramos de que pfctl(8) no trata de mostrarnos colas que ya no existen.
- En sshd(8), comprobamos que la autenticación mediante clave de acceso está habilitada antes de intentar autenticar usuarios con el método "none" (p.ej. una clave en blanco).
- Incluímos el nuevo gzexe(1), con licencia BSD.
- Corregimos los códigos de error de diff(1) al comparar contra stdin.
- Eliminamos GNU diff del árbol.
- Includo soporte básico de vías de acceso ftp:// mediante la variable de entorno PKG_PATH.
- Hacemos las preguntas de patch(1) más acordes con POSIX, e incorporamos la opción -i de POSIX.
- Hacemos que ifconfig(8) muera (en vez de solamente quejarse) al fallar la inclusión o borrado de una dirección en una intergaz.
- Utilizamos sockaddr_storage en vez de sockaddr para evitar machacar la pila en bpf(4).
- Eliminamos una barra invertida (backslash \) y recuperamos "make release" de XF4.
- Almacenamos la interfaz asociada con un estado de pf(4) al crear por primera vez la entrada, y no cuando otro paquete coincida con esta.
- Al ejecutar fsck(8) como root, elevamos el límite de recursos de datos hasta ilimitados (en vez de hasta el hasrd limit) para evitar problemas al tratar sistemas de ficheros grandes.
- Mejori manejo de la variable de entorno TMPDIR en patch(1).
- Mejorado comprobación de salida en stdout de compress(1)
- Nueva implementación del indicador de progreso de ssh(1), con una licencia mejor.
- Incluímos "pass on lo" al pf.conf(5) temporal durante el arranque (PR#3376.)
- Correguido el manejo de respuestas del servidor con varias líneas en ftp-proxy(8).
- Incorporamos unos nuevos script zforce(1), con licencia BSD.
- Hacemos que compress(1) haga lo correcto al enfrentarlo con (p. ej) "gzip -lN < foo.gz".
- Otra correcci&oacite;n de orden de bits omitida, esta vez en el código de recomposición de fragmentos.
- Corregimos un sobrapasamiento-por-uno en un printf(%s) dentro de isakmpd(8)
- Mejoras en los cálculos skip-step de Improvements to pf(4)
- Varias correcciones en propolice.
- Incorporamos growfs(8) de FreeBSD.
- Eliminamos del kernel el código MATH_EMULATE sin licenciado (escrito por alguien llamado Torvalds), dejando por el momento sólo el código de emulación GNU.
- No tratamos dos barras (slash /) consecutivas como componentes de una ruta de acceso en patch(1), por compatibilidad con POSIX.
- Hacemos consistente con POSIX y diff(1) el código de retorno de patch(1).
- Añadido nueva marca de mbuf(9) (M_TUNNEL) para conexiones IPsec en modo tunel, de modo que podamos detectar gif(4) sobre IPsec, y desencapsularlo consecuentemente (PR#3023.)
- ssh-keygen(1) ya es capaz de generar los grupos Diffie-Hellman que necesita moduli(5).
- compress(1) falla si detecta que la salida comprimida va a ser mayor que la entrada, borrando en tal caso el fichero .gz.
- Corregida inicialización omitida y cura de un cuelgue que podía ocurrir al hacer un diff(1) sobre un directorio.
- Tratamos de relacionar el uso de memoria y cpu en diff(1); el comportamiento anterior (no relacionado) está disponible con -d.
- Instalamos artículos con tutoriales de ed(1)
- Dejamos de hacer que la opcón -s de mtree(8) habilite por error -t.
- Más ajustes en compress(1).
- Corregimos una negación de servicio para x86 (reportada por Michal Zalewski) poniendo a cero los registros SYSENTER en el arranque del núcleo.
[Aplicado a la rama estable]
- Quitamos algunos cambios de orden de bits de la cabecera IP en el lugar dentro de bridge(4), que habímos pasado por alto.
- Imprimimos el número de línea de error correcto en newsyslog(8).
- Cambiamos las referencias a la ahora inexistente página del manual de kerberos(1) para que apunte hacia "info heimdal".
- Incluido soporte para sha2 en isakmpd(8).
- Realizamos una pequeña limpieza de *printf en sys/net/.
Nuevo atributo de formato __kprintf__ para gcc(1) que traga argumentos del núcleo *printf(9). Ver gcc-local(1) para más información.
- Modificamos la opción -b de patch(1) para que se comporte seguún POSIX (guardar como copia de seguridad) y pasamos la funcionalidad antigua (especificar el sufijo del fichero de backup) a la opción -z como en GNU patch. Por ahora, -b está activado por defecto.
- Corregimos asignación de tamaño de paquetes IP para tuneles IPSec, que habíamos perdido en los recientes cambios sobre orden de bits.
- Incluido soporte sha2 a IPsec.
- Añadido nuevo usuario _syslogd para syslogd(8), que recibirá en breve el tratamiento de separación de privilegios.
- Permitimos construir el núcleo con inet activado pero con eter deshabilitado (PR#3356.)
- Nueva definición APIWARN de libc/Makefile, deshabilitada por defecto, que hace que el enlazador se queje al utilizar funciones de cadena inseguras.
- Movemos código de utilidades SCSI y lo pasamos a scsi(8), el único lugar donde se utiliza.
- Al separar (detach) una interfaz, eliminamos de las colas de interrupción software cualquier paquete que apunte a ella.
- Activamos DMA en todos los controladores pciide(4) excepto en los de la casa Promise realmente antiguos.
- Correcciones varias para soportal LBA48 en controladores pciide(4) Promise antiguos. De NetBSD, correcciones de FreeBSD.
- En modo de emulación Linux, no pasamos (por ahora) ioctls de vfat implementados.
- Eliminamos unas cuestiones sobre scanners no utilizadas en src/usr.sbin/ssio.
- Implementamos la llamada al sistema sysinfo() bajo emulación de Linux.
- Eliminado código AFS de sshd(8).
- Rehacemos la corrección acerca de "numero de línea no válido" en patch(1)
- Actualizamos CGI(3p) a la versión 2.98 para solventar un error de scripting entre sites (cross-site scripting)
[Aplicado a la rama establa]
- Utilizamos el getopt_long(3)de libc en patch(1) en lugar de la versión propia.
- Ajustes POSIX en patch(1)
- Nos pasamos al nuevo código de diff(1) y diff3(1), deshabilitando GNU diff. sdiff desaparece.
- Eliminamos código obsoleto de KerverosIV y AFS de ssh(1) y volvemos a activar la opción -k.
- Implementamos las opciones -L y -T de diff(1) por compatibilidad con GNU diff.
- getaddrinfo(3) y getaddrinfo(3) ahora comparten un semáforo (mutex).
- Comprobamos la presencia de indicadores no válidos para mmap(2) y mprotect(2) expulsando errores.
- Realizamos una serie de ajustes para conformidad con POSIX en la salida de diff(1)
- Deshacemos la corrección de números de línea de patch(1), provocaba cores ocasionales.
- Incorporamos la función llabs(3) por conformidad con C99.
- Incluímos las funciones ftw(3) y nftw(3), impementadas utilizando fts(3), por conformidad con XPG.
- Hacemos crecer de forma dinámiuca el array de cambios de diff(1)
- Corregimos un error de redibujado en vi(1) que podría provocar una recursión infinita.
- Compilamos modload(8) con la opción -Z de ld(1) (deshabilitando W^X).
- Corregimos error tipográfico en md5(1) que creaba un array de enteros en lugar de caracteres.
- Permitimos utilizar dispositivos uhid(4) como "ratones" para el servidor X.
- En wd(4) utilizamos LBA48 sólo cuando sea absolutamente necesario, para reducir la sobrecarga de escritura de registros.
- Hacemos que ac(8) ignore las entradas que retroceden en el tiempo.
- Corregimos un error que causaba un fallo de segmento (segfault( en grep(1) (PR#3358.)
- Al definir MALLOC_EXTRA_SANITY, hacemos que malloc(3) solamente avise en lugar de morir en errores de mmap(2)/brk(2)
- Actualizaciones en systrace(1): Corregimos errores y una nueva acción "ask"
- Corregimos el análisis de nombres de ficheros en sftp cuando tratamos argumentos con comillas escapadas (OpenSSH bug #517.)
- No ponemos a compress(1) en modo "zcat" al pasar la opción -o.
- Comprobamos de que el punto de montaje del descriptor pasado a fstatfs(2) no sea NULL.
- Descambiamos en ld.so(1) la muestra de revisiones de bibliotecas cuando la biblioteca disponible tiene una versión menor de la solicitada.
- Incorporamos compatibilidad con GNU diff y muchas otras correcciones y limpieza en diff(1).
- Corregimos en pf(4) el reensamblaje de fragmentos en reglas scrub tras los cambios de orden de byte en netinet.
- Incluido soporte para descifrado ESP en tcpdump(8) (opción -E).
- Hacemos que el manejo de no-hay-nuevas-líneas-al-final-de-fichero en diff(1) coincida con GNU diff, ahora que patch espera esto.
- Corregido un error de sizeof(algoincorrecto) en grep(1).
- Enseñamos a patch(1) cómo tratar con el mensaje "\ No newline at end of file" que produce GNU diff (y pronto producirá el diff(1) de OpenBSD). De NetBSD.
- En newfs(8), eliminamos el límite por defecto de 16 cilindros por grupo en ffs, y sencillamente lo asignamos para que coincida con otros parámetros. Cambiamos el tamaño de fragmento a 2048, lo que nos deja un tamaño de bloque de 16k. (del newfs.c de FreeBSD a final de 2001).
- Reaccionamos racionalmente ante números de línea extraños en el entrada de patch(1).
- Dejamos de almacenar las credenciales de Kerberos en el proceso sshd(8) privilegiado.
- Limpiamos el indicador IUCLC (pasar de mayúsculas a minúscules) al asignar el modo de tyy raw en ssh(1).
- Admitimos tantos argumentos -d ((sshd(8)) o -v (ssh(1)) como el usuario quiera darnos. El máximo nivel de detalle/depuración sigue siendo 3.
- Hacemos que mkdep(1) trate correctamente '-o <file>' en la línea de órdenes del compilador.
- En xargs(1), no llamamos a err(3) (que utiliza a su vez exit(3)) después de realizar un vfork(2).
- Corregimos los rangos de líneas para la salida unificada de diff(1)
- Ponemos en funcionamiento pflog(4) después de los recientes cambios de orden de octetos en netinet.
- Hacemos que compress(1) no recomprima un fichero con un sufijo que indique que ya está comprimido.
- Corregida gestión de memoria en el código de análisis de tablas de pfctl(8)
- Verificamos el rango de los argumentos numéricos pasados a grep(1) contra INT_MAX.
- Deshacemos intercambio de las estadísticas de uptime sec y usec en an(4).
- Corregimos el código de manejo de sufijos en compress(1).
- Permitimos a compress(1) aceptar la opción -t (e implícitamente -c) cuando toma su entrada de una tuberia (normalmente -t y -c son mutuamente excluyentes).
- Activamos la construcción de bibliotecas de Kerberos bajo /lib.
- Más limpieza en páginas del manual.
- Eliminamos de sshd(8) la opción no documentada -V.
- Eliminamos error(1).
- Corregimos un par de casos en los que malloc(3) por falta de memoria, pero no envía ENOMEM.
- Hacemos que el código cardbus fwohci (IEEE1394) compile en sistemas big-endian.
- Incorporamos el script zdiff(1) que hace uso de nuestro nuevo y mejorado compress(1).
- Suprimimos un par de llamadas a htons() innecesaries en el código de encaminamiento de pf(4)
- Mejoras en el análisis y mejor soporte de depuración/pruebas de regresión para tablas en pfctl(8).
- Hacemos que la comprobación de número mágico de compress(1) funcione al descomprimir desde una tuberia.
- Nos aseguramos de que se envía un mensaje de desbloqueo al manejar errores de recepción de NFS.
- Includo un moldeado a 64 bits para evitar un desbordamiento en statfs(2) al trabajar con discos grandes.
- Corregida la semántica -v de grep(1) (mostrar si no coincide con ningún patrón.)
- Soporte de LBA48 y ajustes de compatibilidad en atactl(8).
- Asignamos el código de retorno correcto cuando grep(1) muere por causa de un error.
- Corregido el análisis de la opción -<num> (contexto) de grep(1).
- Nos traemos un diff3 de 32V UNIX, y empezamos a darle forma.
- Retocamos la operación del cliente ftp del instalador para que los juegos (sets) se obtengan siempre exactamente de la misma ubicación que la lista de juegos.
- Prevenimos un cambio de claves excesivo en ssh(1) para aquellos algoritmos de cifrado con una longitud de bloque <= 128 bits forzandoles un límite de 1GB para cambio de claves.
- En el instalador asignamos todos los valores de ulimit a "ilimitado", corrigiendo fsck(8) en sistemas de fichero grandes.
- Corregidas un par de comprobaciones de longitud de paquetes IPv6 rotas.
- Arreglamos la incorporación de listas de hosts en pfctl(8).
- Hacemos que spell(1) malinterprete '+X' como la opción -X'.
- Limpiamos bastantas ficheros de cabecera que faltan por todas partes.
- Hacemos que el normalizador de paquetes IPv6 detecte paquetes cortos, ya que la comprobación de 'tamaño exacto;' acaba de eliminarse.
- En la pila netinet, no hacemos trampas ejecutando NTOHS() sobre ip_len e ip_off (modificando directamente el buffer de paquetes). En su lugar, llamamos a ntohs() cada vez.
- Hacemos a ld.so(1) compatible con las nuevas binutils.
- Hacemos que pkg_add(1) deje de hacer un core cuando el paquete tiene un nombre de paquete no válido.
- Corregimos una doble liberación de memoria en ex(1),
- Mejoramos el rendimiento de gem(4) en sparc64 y macppc.
- Incorporamos libevent 0.7a.
- Nueva opción "elimina pág. del manual" -u en makewhatis(8).
- Corregimos un puntero salvaje al borrar las interfaces virtuales multicast del router (requiere opción MROUTING).
- Corregimos algunos problemas en el PHY de sis(4).
- Mejor manejo de ficheros temporales en diff(1).
- La opción -l (paginar) de diff(1) vuelve a funcionar.
- Sincronizamos el código de USB con NetBSD, preparandonos para soportar USB 2.0.
- No matamos los estados de otros usuario al registrarnos en authpf(8). Al eliminar los estados (del usuario correcto), nos aseguramos de que queden fulminados.
[Aplicado a la rama estable]
- Corregido un panic al usar IPSec no intentando remitir paquetes de encapsulación IP-en-IP truncado.
- Dejamos de remitor multicast al disociar una interfaz IPv6.
- Hacemos que el código de cache DBS SSL de httpd(8) (normalmente no compilado) pueda construirse de nuevo.
- Corregimos un free() doble diff(1).
- Intentamos evitar usar un fichero temporal innecesario al hacer un diff(1) sobre un fichero coriente redirigido a stdin.
- Hacemos que syslogd(8) falle al pasarle (con -p) un nombre de socket UNIX demasiado largo, en vez de truncar el nombre del fichero silenciosamente.
- Nos aseguramos de que compress(1) cierre sus ficheros adecuadamente.
- Adiós rpc.pcnfsd(8).
- Corregida comprobación de expiración de clave en security(8)
- Pasamos la longitud correcta a readlink(2) en rdistd(1)
- Cuando se le da un nombre de socket unix demasiado largo, nc(1) da un error útil en vez de truncar el nombre silenciosamente.
- Implementamos la función cpuid() para i386 generic, no sólo para longrun.
- Imprimimos las horas de volcado (con dump(8)) correctamente (PR#3296.)
- raidctl(8) ahora termina estrepitosamente en vez de truncar inadvertidamente opciones de línea de órdenes excesivamente largas.
- mount_nfs(8) nos da un mensaje útil cuando el nombre del host es demasiado largo.
- Actualización importante (major update) en BSD diff, que implementan muchas más opciones "estándar" y lo organizan un poco.
- Reiniciamos debidamente todos los campos del inodo ext2fs borrado, corrigiendo un panic. De NetBSD.
[Aplicado a la rama estable]
- Corregido un paso por una unidad en el código del sistema de ficheros ext2fs del núcleo, el primer inodo tiene el número uno y no el cero.
[Aplicado a la rama estable]
- Más correcciones de strn*() -> strl*().
- Damos marcha atrás en la corrección de coincidencias exactas del socket de routing tras recibir informes de problemas.
- Suprimimos la funcionalidad de -h de BSD diff, pero permitimos la opción por compatibilidad como en GNU diff.
- Limpieza variada en pkg_add y cía.
- Incluímos el modificador de pf(4) "pass" para reglas de Nat, permitiendo que una regla de traducción se salte las reglas del filtro.
- Eliminamos un copy redundante (e incorrecto) en el código de pruebas tcp pf pf(4)
- Mejor detección de los ajustes de umask en security(8).
- Utilizamos realpath(3) en vez de averiguarlo por nuestra cuenta en los programas auxiliares mount_*(8). Corrige el PR#1662.
- Limpieza de funciones de cadena en getNAME(8).
- Limpieza en el código de tablas y manejador se salida de pfctl(8).
- Corregimos el análisis de la opción AddressFamily del fichero de configuración en ssh(1)
- Hacemos que sendmail(8) use el setreuid(2) del sistema en vez del suyo propio.
- Incuimos una llamada mmap2() "auténtica" bajo emulación de Linux, usando la nueva opción MAP_TRYFIXED de mmap(2) para que funcione de la forma que lo hace en Linux.
- En ssh(1) forzamos a minúsculas el alias de la clave antes de buscarlo.
- Inclumos soporte de SOCKSv5 en ssh(1) con la opción -D, adem´s de soportar SOCKSv4.
- Mejorado algoritmo de búsqueda de bibliotecas con versión de ld.so(1)
- Subimos la aleatoriedad de mktemp(3) en muchos lugares pasando de 6 a 10 'X'.
- Permitimos que la opción -a de newsyslog(8) archive atravesando sistemas de ficheros.
- Incluímos opción MAP_TRYFIXED a mmap(2) para deshabilitar la evasión de direcciones del heap, lo que ayuda a emular otros sistemas operativos.
- Eliminamos la llamada al sistema de compatibilidad sys_omquery().
- Mejorada la comprobación de seguridad del umask en security(8).
- Correcciones de estabilidad en siop(4).
- Dejamos de utilizar mmap(2) en tail(1), corrige varios errores y cuestiones de rendimiento.
- Corregido una comprobación de límites incorrecta en la parte de grep-sin-regexp dentro de grep(1).
- Mejoras de tapadillo para acelerar m4(1)
- Incluímos algunas funciones de gestión de buffers para tablas de pf(4)
- Correcciones a unifdef(1) de FreeBSD.
- Reniciamos las estadísticas de pf(4) en la interfaz cuando cambia la interfaz de log (PR#3332.)
- Purgamos debidamente las etiquetas de pf(4) al desechar reglas de filtro de bridge(4).
- No generamos paquetes icmp redirect si pf(4) ha reescrito la dirección de destino.
- Mejoramos la compatibidad de compress(1) con gzip con unos simples scripts de configuración que esperan que 'gzip -h' retorne con éxito.
- Primera pasada para normalización de paquetes IPv6 en pf(4). Todavía no reensamblamos fragmentos.
- Mejoras en el controlador del sensor de hardware lm(4)
- Hacemos que compress(1) responda de forma más útil a errores de CRC de gzip.
- Correcciones y limpieza en muchas páginas del manual.
- Corregimos algunos problemas de búsqueda de targets en siop(4).
- Arreglamos la impresión de cadenas en locate(1)
- Corregimos un error de mdoc que insertaba líneas en blanco aleatorias en las páginas del manual.
- Comprobación de tipos mejorada para E/S atómica de ssh(1)
- No damos a los interfaces pfsync(4) una dirección IPv6 de enlace local.
- sshd(8) ahora registra los errores de creación del fichero pid (pidfile).
- Permitimos que ddb(4) registre mediante syslog la salida. Controlado mediante ddb.log.
- Manejamos los temporizadores de descubrimiento de vecinos IPV6 más rápidamente y con mayor precisión.
- Hacemos que el instalador monte todo el swap posible antes de crear los dispositivos, trando de hacer que MAKEDEV deje de saltar por falta de memoria.
- Nos aseguramos que getanswer() (llamada por gethostbyname(3)) no se quede m&aacite;s allá del final de su paquete de respuesta.
- Eliminamos una pérdida de memoria en arp(8).
- Corregimos una ruptura por limpieza de funciones de cadena en siop(4).
- Recomponemos el código gzip de compress(1) en arquitecturas big-endian.
- Correcciones de cadenas más agresivas en named(8).
- Corregida la opción -t de compress(1),
- Incluímos soporte kqueue para ugen(4), uhid(4), usb(4) y uscanner(4). De NetBSD.
- Corregimos la búsqueda de etiquetas de pf(4) por DIOCCHANGERULE.
- Corregido un sutil error en el contador de referencias a etiquetan en el pf(4) del kernel.
- Incorporamos conversión alaw <-> ulaw al kernel ( alaw_to_mulaw(), mulaw_to_alaw() )
- Comprobamos que el argumento de "-o ProxyCommand existe en la línea de órdenes de ssh(1) en vez de hacer un core.
- Incorporamos a gcc(1) un sencillo comprobador de límites estático. (Ver gcc-local(1).)
- Migramos diff3(1) y sdiff(1) a usar el getopt_long(3) de libc.
- Incluido el documento "USD Beginners Guide" , y varios artículos históricos.
- Incluida documentación de USD para awk(1), ed(1) y sed(1), y la documentación de PSD para m4(1), lint(1) (como xlint) y las macros ms.
- Corregimos el manejo de ficheros temporales y un sobrepasamiento por la unidad en BSD diff.
- Corregida la detección de isp(4)i PCI.
- Agrandamos la estructura de datos osiop(4) hasta 256 bytes para evitarnos problemas de caché.
- Corregido problema de orden de bits en an(4).
- Incorporamos soporte para diffs unificados en BSD diff.
- Hacemos que asn1_compile utilice arc4random(3).
- Limpieza de prototipos de funciones por todo el árbol.
- Nuevo mecanismo extensible bufq para el manejo de colas bif, por ahora sólo en wd(4).
- Incuimos soporte para la opción -C (número de líneas de contexto) a BSD diff.
- Corregimos algunas conversiones de tipo sospechosas en grep(1).
- Permitimos que bridge(4) etiquete paquetes para su uso futuro por reglas de pf(4).
- Corregimos argumentos hacia atrás al buscar dentro de ficheros comprimidos con gzip en grep(1).
- Limpieza general (funciones de cadena seguras, evitar condiciones de carrera en señales) en el recientemente importado BSD diff.
- Corregimos divisiones entre cero en atapiscsi(4) que pueden ocurrir cuando el sistema es incapaz de determinar incluso el tamaño de bloque de la unidad.
- Incorporamos BSD diff desde 4.3 Reno. Hay mucho trabajo por hacer.
- Incporporamos emulación a.out i368 para binarios dinámicos.
- Corregimos la opción -w de grep(1).
- Hacemos que las opciones de grep(1) -E -F y -G se salten el nombre del programa, y las hacemos mutuamente excluyentes.
- Hacemos funcionar la funcionalidad fgrep de grep(1)
- Arreglamos las funciones POSIX:: de Perl 5.8.0
[Aplicado a la rama estable]
- Hacemos que la opción route-to de pf(4) funcione para direcciones IPv6 locales al enlace.
- Reincorporamos algo de código de socket de routing (perdido en una actualización anteriro) que podría causar que se actualizasen por error rutas menos específicas.
- Muchos int->u_int en ssh(1).
- Actualizamos el código de descubrimiento de vecinos IPv6 desde KAME.
- Evitamos usar expresiones regulares para búsquedas de cadena sencillas en grep(1).
- Mejoramos el script zmore(1) basado en compress(1) y lo instalamos en substitución de la versión de gzip.
- Damos a conocer muchos ioctls de dev/ net*/ crypto/ a kdump(1).
- Eliminamos el printf propio de csh(1), innecesario (que funcionaba).
- No utilizamos getopt(3) en printf(1) al hacer que los formatos que comienzan con un guión se interpreten como indicadores.
- Incorporamos un sencillo script zmore(1) que utiliza compress(1)
- Se inclute soporte para pcmcia(4) y wi(4) en sparc.
- Instalamos una routa de host para interfaces punto a punto aunque exista una ruta conecectada mediante una interfaz de broadcast (NetBSD PR 21903.)
- Comprobamos que nfds<0 en poll(2).
- Mejorado el manejo de ficheros temporales en el gccmakedep(1) de XFree.
- Arreglo temporal a una utilización de memoria después de liberarla relacionada con tablas en pf(4).
- Mejoramos la detección de ficheros binarios en grep(1) e incluímos/corregimos una serie de opciones de compatibilidad.
- Mejoras en el manejo de ajustes de red en el instalador durante una actualización.
- Eliminamos los ficheros de ypserv(8) sin información de copyright.
- Instalamos freegrep como {e,f,z,ze,zf}grep además de como grep(1).
- Actualizamos el grep(1) (no GNU) a freegrep 0.16.
- Eliminamos GNU grep (y la mayor parte de) gzip del árbol. Hay alternativas con licencia BSD que hacen el mismo trabajo.
- Reactivamos el aleatorizador de orden de carga de bibliotecas en ld.so(1), con correcciones.
- Hacemos más robusta la selección de nombres de ficheros en el instalador.
- fflush(3) stdout al monitorizar contínuamente colas con pfctl(8).
- Incorporamos contadores de precisión a las entradas de estado de pf(4), permitiendo informar del tráfico mediante pfsync(4)
- Se incluyen enganches a exec/fork/exit por proceso, los usamos para corregir brk(2) bajo emulación Linux, y esto corrije Java.
- Incorporamos soporte MSS al proxy syn de pf(4).
- Inicializamos debidamente antes de llamar a getusershell(3) en su(1).
- Mensaje de depuració BAD ICMP más útil en pf(4).
- Hacemos que isakmpd(8) imprima algunos mensajes en el diario cuando responde al último mensaje.
- Utilizamos _PW_NAME_LEN en lugar de un límite de 8 caracteres por username codificado en top(1).
- Eliminamos las funciones de cadena caseras de top(1).
- Hacemos que comsat(8) utilice fseeko(3) en vez de fseek().
- rpcgen(1) ya genera un código ANSI C más bonito.
- Deshacemos el cambio reciente '-nolisten tcp' de xdm(1).
- Arreglamos algunas pérdidas de memoria en popa3d(8) y systrace(1).
- Suprimimos el caracter de nueva línea de la entrada suministrada por el usuario al pedir un fichero de continuación en restore(8) (PR#3324.)
- Arreglamos un error que condenaba a fortune(6) a ser siempre no ofensiva.
- Hacemos que bpf(4) devuelva ENOBUFS en caso de fallo de malloc(9) en lugar de causar un panic (PR#2235,PR#2236,PR#2640.).
- Hamos más consistente el manejo de macros predefinidas y de usuario de m4(1), y permitimos que pushdef funcione para las predefinidas.
- xdm(1) ahora pasa '-nolisten tcp' a Xserver(1) por defecto para el display local :0.
- Reactivamos el modo UDMA 5 en dispositivos pciide(4) HPT370A, ahora que hemos arreglado los problemas de interrupciones y temporización.
- Arreglamos un sizeof oops que rompía la opción -N de less(1)
- >hme(4) ya anuncia su funcionalidad de VLAN.
- Mostramos debidamente direcciones a no enrutar al expandir macros de etiquetas en pfctl(8).
- Deshacemos la reciente corrección de claves de smartcards de ssh(1), viola PKCS#1.
- Cuando el resultado de expadir las macros de etiquetas $srcadd o $dstaddr sea una tabla, hacemos que pfctl(8) muestre el nombre de la tabla en vez de basura.
- Arreglamos vmstat(8) en máquianas sin disco (PR#3322.)
- Relajamos la sintaxis de rtadvd.conf(5), eliminando la necesidad de la opción addrs.
- En amd(8) usamos getifaddrs(3), corrigiendo el selector de 'cable'.
- Devolvemos el mensaje de error correcto si el usuario trata de matar un proceso inexistente desde top(1).
- Incorporamos algunas entradas de composiciones de teclas muertas (PR#3295, la entrada para la cedilla además de para las comillas dobles.)
- Evitamos una dereferencia nula en cnkqfilter() (crash kqueue(2) de /dev/console, PR#3317.)
- Corregimos un error lógico en mtree(8) que hacía que -U devolviera un error igual que -u.
- Hacemos que ssh-add(1) muestre de nuevo el comentario de la clave al preguntar después de recibir una frase de acceso incorrecta.
- Corregimos errores de "bad decrypted len" en ssh(1) al usar claves públicas almacenadas en smartcarfs (OpenSSH bug 592.)
- Actualizaciones en systrace(1), soporta liberar políticas antiguas y escapar caracteres especiales.
- Mejor comportamiento de intercambio de byres en dc(4), que corrige la lectura de direcciones mac en arquitecturas big-endian.
- Hacemos que dhclient-script(8) corrija los permisos del fichero resolv.conf(5)
- Hacemos que isakmpd(8) deje de perder información de identidad al cambiar de clave.
- Se incorpora a encrypt(1) la opción '-c class' que utiliza la clase de login para seleccionar el cifrado de la clave de acceso.
- Corregimos kqueue(2) en ptys (PR#3209.)
- Sólo comprobamos la validez de la clase de login en user(8) cuando ésta se ha asignado.
- Corregidos unos sizeof en top(1).
- Asignamos memoria borrada para los buffers con contenido de isakmpd(8)
- Corregimos las comprobaciones de estado TCP de pf(4) al utilizar una combinación de SACK (reconocimientos selectivos) y escalado asimérico de ventana.
[Aplicado a la rama estable]
- Se incluyen en cpp(1) las macros predefinidas __LP64__ and _LP64 para sparc y alpha.
- Sincronizamos em(4) con las actualizaciones de FreeBSD y lo activamos en sparc64.
- Incluímos el indicador -0 (cero) en pax(1) para permitir que el separador de nombres de fichero sea NUL en vez de un fin de línea (PR#3310.)
- security(8) ya permite utilizar el caracter punto en los nombres de usuario, en consonancia con los cambios realizados en user(8).
- La orden de pfctl(8) show anchor ya respera el indicador 'quiet'.
- Hacemos que dhclient-script(8) respete enlaces simbólicos.
- Eliminamos Rijndael (obsoleto) de libcrypto.
- Soporte para más tarjetas Fast y Gigabit Ethernet de Inet.
- Utilizamos el verdadero varargs en top(1) en vez de hackearlo.
- ssh(1) y ssh-agent(1) ahora utilizan la etiqueta de la clave de un certificado PKCS#12, en vez de mostras solamente "smartcard key."
- Hacemos que security(8) deje de quejarse al ver nombres de usuario que terminan en "$".
- Aceleramos las macros trazadas de m4(1), lo que ayuda a GNU autoconf.
- Hacemos que las colas funciones en intefacez tun(4). No recomendable (se deberín asignar a tun, y entonces encolar en la interfaz física) pero necesario a veces, por ejemplo para pppoe(8).
- En pfctl(8) no aplicamos una máscara de red al nombre de una interfaz.
[Aplicado a la rama estable]
- Hacemos que el kernel compile con NFS pero sin FIFO.
- POSIXficamos xargs(1), en su mayor parte desde FreeBSD.
- Varias ansificaciones y de-refistros.
- Añadomos soporte a tcpdump(8) para volcar NAT-T.
- Hacemos que las características lifetime y confirmation de ssh-agent(1) funcionen con claves de smartcards.
- Construimos de nuevo bs(6) y hunt(6) ahora que tienen buenas licencias.
- Incorporamos en varias arquitectutas la opción MFS, para correguir una ruptura de actualización.
- Algunas actualizaciones al API Avanzada para Sockets para IPv6 RFC3542.
- Se incluye el target ARM en gcc(1).
- Embellecemos dhclient-script(8), y corregimos (en su mayor parte) unos problemas de actualización de resolv.conf(5)
- Permitimos un intervalo cero en los ficheros de configuración de newsyslog(8).
- Se incorpora inicialización faltante en pf_test() y se evita la adición de estados aleatorios en tablas.
- Incorporamos soporte para clases de login (opción -class) en adduser(8).
- rmail(8) ahora indica a sendmail que haga la entrega en primer plano.
- Hacemos que rmail(8) pase el indicador -G a sendmail(8) tal como esperamos.
- Instalamos correctamente rcs2log(1) (PR#3298.)
- Comprobamos en user(8) que una clase de login exista antes de usarla (PR#2699.)
- Cambios en user(8) provenientes de NetBSD:
- useradd(8) y usermod(8) comprueban que el tamaño de la clave cifrada sea correcto.
- Registramos mediante syslog modificaciones en usuarios y grupos.
- Comprobaciones más precisas de las opciones de línea de órdenes.
- Al borrar un usuario inclueyendo su perfil, eliminamos todas las referencias al mismo en /etc/group.
- Nos aseguramos que un grupo esté en ficheros locales (no en YP) antes intentar modificarlo.
- No permitimos abrir /dev/crypto al compilar el kernes sin la opción CRYPTO.
[Aplicado a la rama estable]
- Hacemos que mount(2) devuelva EROFS en vez de EPERM al tratar de montar un sistema de ficheros sucio.
- Hacemos más robusto a isakmpd(8) cuando se encuentre con tipos de IDentificación desconocidos.
[Aplicado a la rama estable]
- Cambiamos el temporizados que utiliza pthread, permitiendo hacer seguimiento (profile) de aplicaciones hebradas.
- Hacemos que newsyslog(8) detecte números negativos en ficheros pid.
- Hacemos que sudo(8) deje de estar ocupado esperando a que sendmail(8) haga su trabajo.
- Comprobación de entradas de CDDB mejorada en cdio(1).
- Hacemos más uniforme el orden de bits en el código nat de pf(4).
- Marcha atrás el cambio en las correcciones para IPv6 en tcp_trace y corregimos el PR#3283.
- Corecciones de estabilidad en siop(4) es situaciones de fuerte carga.
[Aplicado a la rama estable]
- Permitimos que user(8) -e y -f acepten fechas de los tipos mes-dia-añ como segundos-desde-epoch. De NetBSD.
- Detectamos nombres de usuario con tamaño excesivo en pwd_mkdb(8).
- Detectamos nombres de grupo con tamaño excesivo en user(8) y hacemos que la orden falle.
- Corregido un sobrepasamiento por una unidad en user(8).
- La orden patsubst de m4(1) ya soporta patrones nulos. Parece corregir GNU Autoconf 2.57.
- Una tabla de pf(4) en una regla de anclaje ya crea un anclaje de verdad, por lo que pfctl(8) funciona como se espera.
- pfctl(8) (con la opción -ss) deja de imprimir pares de direcciones ip/máscaras de red como a.b.c.d/128.
- Hacemos que identd(8) se ejecute por defecto como usuario _identd si es posible, y si esto falla utilizamos el usuario nobody.
- En less(1) cambiamos setjmp/logjmp por llamadas al sistema interrumpibles.
- Evitamos una dereferencia nula en fontconfig(3) cuando $HOME no están asignado a nada.
- Coreciones en la inclusión de /usr/local/lib/X11/fonts en /etc/fonts.conf.
- No utilizamos M_WAIT en atalk(4).
- No remitimos multicasts IPv6 a una interfaz que ya no se encuentra allí para recibirlos.
- Incoporamos soporta para ficheros grandes en distrib/special/more.
- Enseñamos a distrib/special/more cómo manejar líneas arbitrariamente grandes y finales de línea \r\n.
- Ponemos a 80 el ancho de columna de rusers(1) si stdout no es un tty.
- Incorporamos la opcón genérica '-fno-builtin-<function>' en gcc(1) (cer gcc-local(1).)
- Matamos al proceso ssh(1) cuando scp(1) o sftp(1) reciban una señal (OpenSSH bug 241.)
- Abandonamos privilegios setgid una sola vez en sshd(8).
- Deshabilitamos los métodos de autenticación ssh(1) challenge/response y keyboard-interactive si la clave de host no coincide, para reducir la posibilidad de un ataque de mediación afecte a un usuario que lo desconozca (OpenSSH bug 580.)
- Hacemos que prompt --More-- de less(1) sea --less--, menos como More, y más como POSIX.
- Corregimos distrib/special/more para equipos con unsigned char.
- Simplificamos y corregimos el manejo de ttys de /distrib/special/more.
- Hacemos que event(3) deje de hacer caso a EVENT_NOKQUEUE mientras se ejecute bajo set[ug]uid.
- Deshabilitamos el orden de carga al azar de bibliotecas de ld.so(1), parece que saca a la luz errores en otras partes.
- Proveemos de un camino rápido para solicitudes a crypto(9), saltandonos las colas del kernel cuando sea posible.
- Añadimos algunas funciones de utilidad relacionadas con etiquetas en pf(4).
- Procesamos en primer lugar las opciones 'show' de pfctl(8) que cambien la base de reglas.
- Enorme limpieza de licencias por todo el árbol.
- Solventamos bloqueos al azar de dispositivos cac(4)
[Aplicado a la rama estable]
- Desaconsejamos la peligrosa opción VerifyReverseMapping de sshd(8), y la reemplazamos por la nueva UseDNS (activada por defecto.)
- Instalamos los ficheros de include de OpenSSH en /usr/include/ssl en vez de en ../ssl.
- Eliminamos la cláusula de anuncio de muchas licencias.
- Usamos getopt_long(3) en getopt(3), en lugar de la implementación antigua.
- Eliminamos de systrace(1) un doble free() en potencia.
- Corregimos una comprobación de límites de cadena incorrecta en libedit.
- Limpieza de cadenas en los bloques de arranque de todas las arquitecturas. Ahora sólo utilizan funciones de cadena inseguras buif y src/gnu.
- Solventamos unas pocas inicializaciones que faltaban desde hace tiempo, para no utilizar ruido aleatorio de la pila como una pista para uvm_map(9) a través de uvm_km_suballoc().
- Mejoramos el algoritmo de búsqueda en la tabla de símbolos de ddb(4)
- Enmascaramos correctamente todos excepto los últimos 8 bits de estado en WSTOPSIG y WEXITSTATUS.
- Incorporamos soporte preliminar para LBA al cargador de arranque del i386.
- Construimos la biblioteca dinámica com_err(3)
- Incorporamos pmdb(1) a la compilación por defecto.
- Corregimos errores de signo en timeouts en brconfig(8) y en bridge(4).
- Limpieza de cadenas algo más a fondo en bind9.
- Hacemos que pmdb(1) deje de producir cores cuando no existe el programa a ejecutar.
- Incorporamos LD_NORANDOM a la lista de variables de entorno que se destruyen al ejecutarse bajo setuid/setgid.
- Cargamos las bibliotecas de enlace dinámico en orden aleatorio, para reducir la posibilidades de que un atacante averigue la dirección del código cargado. Para deshabilitarlo, definir LD_NORANDOM.
- Robustecemos dhclient(8) aceptando mensajes que no son DHCPACK con yiaddr=0.0.0.0, como los que envían algunos servidores DHCP corrientes que ignoran la RFX.
[Aplicado a la rama estable]
- Reordenamos las secciones en muchas páginas del manual.
- Utilizamos tanto sete[ug]id(2) como set[ug]id() en ssh(1) al realizar la separación de privilegio y cuando asignamos de forma permanente el [ug]id.
- Al asignar el MSS de tcp6, obtenemos la mtu del enlace mediante IN6_LINKMTU (que tiene en cuenta los ajustes de mtu de descubrimiento de vecinos) en lugar de hacerlo usando la mtu de la interfaz.
- Permitimos uids y gids numéricos en sistrace, y los operadores '<' y '>' para ellos.
- Incorporamos soporte a jumbogramas IPv6.
- Corregimos errores en tcp_trace() relacionados con IPv6.
- Incorporamos el fichero de ayuda de distrib/special/more en al propio programa.
- Corregido el orden de bits de las estadísticas de fxp(4) para netstat -i.
- Solucionamos expansión de tabs, soportamos que EDITOR no sea un pathname completo, y gran limpieza en distrib/special/more,
- Incluido soporte para pthread en el vax.
- No nos arriesgamos a un abrazo mortal M_WAIT al procesar salida IP cruda.
- Hacemos que libwrap busque registros PRT extraños que contengan direcciones IP numéricas en formato de cadena.
- Hacemos que df(1) use lo nuevo de fmt_scaled(3) en libutil.
- Corregimos unas pocas cadenas de formato de *printf en ssh(1).
- Instalamos las cabeceras de mod_ssl bajo /usr/lib/apache/include/
- Incorporamos soporte IPv6 a trpt(8).
- Arreglamos las consultas XDMCP de xdm(1) (XFree86 bug #277.)
- Recomponemos las reglas binat de pf(4) después de los recientes cambios a las comprobaciones de máscaras de red.
- Mejoramos la comprobación de validez de máscaras de red en pfctl(8)
- Hacemos que pfctl(8) libere buffers e inicialice punteros debidamente al trabajar con tablas.
- Pasamos la salida de syslog de ssh(1) previamente por strnvis(3).
- Corregimos una pérdida de fdset en ssh(1).
- Eliminamos del núcleo llamadas a funciones no seguras sprintf(9) y vsprintf.
- Ignoramos cambios de media para la primera orden enviada a un dispositivo sd(4).
- Hacemos coincidir el prototipo de vprintf(9) del núcleo con el de espacio de usuario.
- Hacemos que getconf(1) devuelva _POSIX_PATH_MAX en lugar de _POSIX_PIME_MAX al preguntarle por el anterior.
- Ahora que los núcleos se construyen con propolice, también construímos los módulos con él.
- Nuevo controlador de sensores de monitorización de hardware it(4).
- Corregidos problemas de endianness en dc(4) que hacín fallar la recepción de multicast en los chips Centaur.
- Incluída inicialización inexistente en altq HFSC.
- Incluímos soporte de sólo lectura a NTFS, portado desde NetBSD. No habilitado en GENERIC.
- Incorporamos un indicador para invertir el estereo en auich(4).
- Limitamos el valor devuelto por nice(3) al rango -NZERO ≤ nice ≤ NZERO, con NZERO=20.
- Hacemos que pfctl(8) falle al alimentarlo con nombres de host máscaras de red inválidas.
- Muchas correcciones en los juegos desde NetBSD.
- Permitimos a los cargadores de arranque de i386 y hppa saltarse la parte interactiva.
- Corregido un switch muy fastidiado que adectaba a SO_DEBUG en tcp_input.c.
- lpr(1) deja de comprobar si el fichero a imprimir es un ejecutable. Dejamos esto a filtros de lpd(8).
- Usamos un filtro de caída para conseguir unas estadísticas de rendimiento de altq en pfctl(8).
- En el do_log() de ssh(1), utilizamos syslog_r(3) en aquel código que pueda ser llamado desde un manejador de señales.
- Restringimos severamente las vías de acceso (paths) a los que el isakmpd(8) con separación de privilegios puede escribir y de los que puede leer.
- Usamos sockaddr_storage en vez de sockaddr en isakmpd(8) para corregir la búsqueda repetida de interfaces.
- Mantenemos las claves privadas X.509 únicamente en la parte privilegiada del isakmpd(8) con separación de privilegios.
- Cuando usamos el proxy SYN de pf(4), nos aseguramos de que los ACK se envíen con el tamaño de ventana correcto.
- Esperamos por más tiempo a que los dispositivos USB lentos estén listos para su incorporación.
- No construímos libperl en la pasada de las bibliotecas de "make build", ya que queremos que el configure de Perl tome los detalles de las bibliotecas que la construcción pueda estar cambiando. Otro salto por encima a la espera
- Incluímos el target regen en libkrb5 para eliminar (otra vez) la dependencia de un asn1_compile actualizado.
- Nos quejamos de forma más consistente al respecto de un cable IDE de 80 hilos no existente (para modos UDMA > 2.).
- En syslogd(8) ya no usamos strlcpy(3) al imprimir cadenas sacadas de la estructura utmp, ya que dichas cadenas no están terminadas en cero.
- No ARPeamos las direcciones IP de alias, las tratamos como locales.
- Merge in a number of USB SCSI device updates from NetBSD.
- Incluímos una serie de dispositivos USB SCSI provenientes de NetBSD.
- Incorporamos soporte experimental para cifrado aes-ctr en ssh(1)
- Aplicamos algunas de las las mejoras de USB SCSI también al código de FireWire.
- Acotamos los tamañs de cadenas de un sscanf(3) dentro del código de autenticación rhosts de ssh(1).
- Quitamos una correción para creación de directorios bajo systrace(1).
- Arreglamos las reglas rdr de pf(4) con conjuntos de direcciones usando máscaras de bits y selección de direcciones hash.
- Permitimos el matching inverso de etiquetas de pf(4).
- Corregido el manejo de medios de los dispositivos Intel dc(4).
- Utilizamos el buffer correcto en el gestor de conexiones de spamd(8)
- Usamos mmap(2) en vez de malloc(3) en vfprintf(3) cuando se necesita más memoria para almacenar argumentos.
- Nueva opción Renegotiate-on-HUP para la sección [general] de isakmpd.conf(5) que hará que todas las SA de fase 2 se renegocien.
- Mejoras al soporte USB SCSI.
- Corregimos un par de enteros con signo en ksh(1).
- Corregimos el movimiento de cursor ascendente y descendente de mg(1)
- Hacemos que ksh(1) use ek dup2(2) de libc, en vez del suyo propio.
- Hasta la vista, Kerberos IV.
- Otra caracteística de firewalls de alto coste que también implementa pf(4): TCP SYN proxy, habilitada con "synproxy state" (esto implica modulate state).
- Nueva opción AddressFamily para ssh(1) que funciona de manera similar a las opciones de línea de órdenes -4 y -6 (portable OpenSSH bug 534.)
- Permimitmos que la comparación de direcciones de wi(4) funcione en sparc64.
- Evitamos que se estrelle spamd-setup(8) con un fichero de configuración consistente únicamente en entradas no válidas.
- No asumimos que rt->rt_ifp es válido al descubrir el vecindario IPv6.
- Incluida nueva opción ConnectTimeout a ssh(1).
- Deshabilitamos las opciones de Kerberos de los programas de ssh(1) si no se ha compilado el soporte de Kerberos, y en tal caso avisamos si se utilizan.
- Hacemos que 'ssh -V' imprima debidamente la versión de OpenSSL, en lugar de probar a hacer %s en un long.
- Reparamos el despacho de paquetes IPsec para IPv6, arreglando el PR#3231.
- Corregimos un cuelgue en li