From owner-p4-projects Mon Apr 8 0: 2:33 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A2FBD37B41B; Mon, 8 Apr 2002 00:01:16 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id A09B637B419 for ; Mon, 8 Apr 2002 00:01:13 -0700 (PDT) Received: (from perforce@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g3871Ck02960 for perforce@freebsd.org; Mon, 8 Apr 2002 00:01:12 -0700 (PDT) (envelope-from peter@freebsd.org) Date: Mon, 8 Apr 2002 00:01:12 -0700 (PDT) Message-Id: <200204080701.g3871Ck02960@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm Subject: PERFORCE change 9360 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://people.freebsd.org/~peter/p4db/chv.cgi?CH=9360 Change 9360 by peter@peter_thunder on 2002/04/08 00:00:11 IFC @9359 Affected files ... ... //depot/projects/ia64/lib/libc/locale/euc.c#3 integrate ... //depot/projects/ia64/lib/libpam/modules/pam_kerberosIV/Makefile#3 integrate ... //depot/projects/ia64/lib/libpam/modules/pam_unix/pam_unix.c#6 integrate ... //depot/projects/ia64/release/doc/en_US.ISO8859-1/installation/sparc64/install.sgml#5 integrate ... //depot/projects/ia64/release/doc/fr_FR.ISO8859-1/relnotes/common/new.sgml#3 integrate ... //depot/projects/ia64/release/picobsd/floppy.tree/etc/rc1#3 integrate ... //depot/projects/ia64/release/picobsd/tinyware/simple_httpd/simple_httpd.c#2 integrate ... //depot/projects/ia64/sbin/disklabel/Makefile#3 integrate ... //depot/projects/ia64/sbin/disklabel/disklabel.c#8 integrate ... //depot/projects/ia64/sbin/mount_std/mount_std.c#3 integrate ... //depot/projects/ia64/sbin/newfs/mkfs.c#8 integrate ... //depot/projects/ia64/sbin/newfs/newfs.c#9 integrate ... //depot/projects/ia64/sbin/newfs/newfs.h#3 integrate ... //depot/projects/ia64/sbin/routed/parms.c#3 integrate ... //depot/projects/ia64/sbin/routed/routed.8#4 integrate ... //depot/projects/ia64/share/mk/bsd.lib.mk#7 integrate ... //depot/projects/ia64/share/mk/bsd.prog.mk#4 integrate ... //depot/projects/ia64/share/mk/bsd.sys.mk#4 integrate ... //depot/projects/ia64/sys/alpha/alpha/machdep.c#10 integrate ... //depot/projects/ia64/sys/dev/ata/ata-dma.c#10 integrate ... //depot/projects/ia64/sys/dev/ata/ata-pci.c#10 integrate ... //depot/projects/ia64/sys/dev/mii/miidevs#3 integrate ... //depot/projects/ia64/sys/dev/mii/miidevs.h#3 integrate ... //depot/projects/ia64/sys/dev/mii/rlphy.c#4 integrate ... //depot/projects/ia64/sys/dev/ppbus/if_plip.c#2 integrate ... //depot/projects/ia64/sys/dev/ppbus/lpbb.c#3 integrate ... //depot/projects/ia64/sys/dev/ppbus/lpt.c#2 integrate ... //depot/projects/ia64/sys/dev/ppbus/pcfclock.c#2 integrate ... //depot/projects/ia64/sys/dev/ppbus/ppi.c#2 integrate ... //depot/projects/ia64/sys/dev/ppbus/pps.c#3 integrate ... //depot/projects/ia64/sys/dev/ppbus/vpo.c#2 integrate ... //depot/projects/ia64/sys/dev/usb/hid.c#3 integrate ... //depot/projects/ia64/sys/dev/usb/if_aue.c#8 integrate ... //depot/projects/ia64/sys/dev/usb/if_auereg.h#4 integrate ... //depot/projects/ia64/sys/dev/usb/if_cue.c#6 integrate ... //depot/projects/ia64/sys/dev/usb/if_cuereg.h#3 integrate ... //depot/projects/ia64/sys/dev/usb/if_kue.c#6 integrate ... //depot/projects/ia64/sys/dev/usb/if_kuereg.h#3 integrate ... //depot/projects/ia64/sys/dev/usb/ohci.c#6 integrate ... //depot/projects/ia64/sys/dev/usb/ohcivar.h#5 integrate ... //depot/projects/ia64/sys/dev/usb/ugraphire_rdesc.h#1 branch ... //depot/projects/ia64/sys/dev/usb/uhci.c#6 integrate ... //depot/projects/ia64/sys/dev/usb/uhcireg.h#3 integrate ... //depot/projects/ia64/sys/dev/usb/uhcivar.h#5 integrate ... //depot/projects/ia64/sys/dev/usb/uhid.c#5 integrate ... //depot/projects/ia64/sys/dev/usb/uhub.c#4 integrate ... //depot/projects/ia64/sys/dev/usb/ukbd.c#4 integrate ... //depot/projects/ia64/sys/dev/usb/ums.c#7 integrate ... //depot/projects/ia64/sys/dev/usb/usb.c#5 integrate ... //depot/projects/ia64/sys/dev/usb/usb_port.h#6 integrate ... //depot/projects/ia64/sys/dev/usb/usb_subr.c#5 integrate ... //depot/projects/ia64/sys/dev/usb/usbdevs#10 integrate ... //depot/projects/ia64/sys/dev/usb/usbdevs.h#9 integrate ... //depot/projects/ia64/sys/dev/usb/usbdevs_data.h#9 integrate ... //depot/projects/ia64/sys/dev/usb/usbdi.c#5 integrate ... //depot/projects/ia64/sys/dev/usb/usbdi.h#4 integrate ... //depot/projects/ia64/sys/dev/usb/usbdi_util.c#3 integrate ... //depot/projects/ia64/sys/dev/usb/usbdi_util.h#3 integrate ... //depot/projects/ia64/sys/dev/usb/usbdivar.h#6 integrate ... //depot/projects/ia64/sys/dev/wi/if_wireg.h#7 integrate ... //depot/projects/ia64/sys/i386/i386/machdep.c#12 integrate ... //depot/projects/ia64/sys/kern/uipc_socket.c#8 integrate ... //depot/projects/ia64/sys/kern/vfs_aio.c#9 integrate ... //depot/projects/ia64/sys/kern/vfs_cache.c#5 integrate ... //depot/projects/ia64/sys/kern/vfs_syscalls.c#12 integrate ... //depot/projects/ia64/sys/pc98/i386/machdep.c#11 integrate ... //depot/projects/ia64/sys/pci/if_rl.c#7 integrate ... //depot/projects/ia64/sys/powerpc/powerpc/machdep.c#8 integrate ... //depot/projects/ia64/sys/sparc64/sparc64/machdep.c#10 integrate ... //depot/projects/ia64/sys/sys/disklabel.h#10 integrate ... //depot/projects/ia64/sys/sys/socketvar.h#9 integrate ... //depot/projects/ia64/sys/vm/uma.h#3 integrate ... //depot/projects/ia64/sys/vm/uma_core.c#6 integrate ... //depot/projects/ia64/sys/vm/uma_int.h#4 integrate ... //depot/projects/ia64/sys/vm/vm_zone.c#7 delete ... //depot/projects/ia64/sys/vm/vm_zone.h#3 delete ... //depot/projects/ia64/usr.bin/xlint/lint1/main1.c#5 integrate ... //depot/projects/ia64/usr.bin/xlint/xlint/xlint.c#7 integrate ... //depot/projects/ia64/usr.sbin/arp/arp.c#6 integrate ... //depot/projects/ia64/usr.sbin/lpr/lpd/printjob.c#4 integrate ... //depot/projects/ia64/usr.sbin/sysinstall/config.c#4 integrate ... //depot/projects/ia64/usr.sbin/sysinstall/package.c#4 integrate ... //depot/projects/ia64/usr.sbin/sysinstall/sysinstall.h#5 integrate Differences ... ==== //depot/projects/ia64/lib/libc/locale/euc.c#3 (text+ko) ==== @@ -38,7 +38,7 @@ static char sccsid[] = "@(#)euc.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/locale/euc.c,v 1.6 2002/03/22 21:52:18 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/locale/euc.c,v 1.7 2002/04/07 16:37:15 asmodai Exp $"); #include @@ -123,6 +123,8 @@ #define _SS2 0x008e #define _SS3 0x008f +#define GR_BITS 0x80808080 /* XXX: to be fixed */ + static inline int _euc_set(c) u_int c; @@ -202,6 +204,8 @@ } *string++ = _SS2; --i; + /* SS2 designates G2 into GR */ + nm |= GR_BITS; } else if (m == CEI->bits[3]) { i = len = CEI->count[3]; @@ -212,6 +216,8 @@ } *string++ = _SS3; --i; + /* SS3 designates G3 into GR */ + nm |= GR_BITS; } else goto CodeSet1; /* Bletch */ while (i-- > 0) ==== //depot/projects/ia64/lib/libpam/modules/pam_kerberosIV/Makefile#3 (text+ko) ==== @@ -22,11 +22,12 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/lib/libpam/modules/pam_kerberosIV/Makefile,v 1.9 2002/03/05 21:56:14 des Exp $ +# $FreeBSD: src/lib/libpam/modules/pam_kerberosIV/Makefile,v 1.10 2002/04/07 12:53:58 des Exp $ LIB= pam_kerberosIV SHLIB_NAME= ${LIB}.so.${SHLIB_MAJOR} SRCS= pam_kerberosIV.c klogin.c +NO_WERROR= yes CFLAGS+= -DKERBEROS DPADD= ${LIBKRB} ${LIBCRYPTO} ${LIBCOM_ERR} LDADD= -lkrb -lcrypto -lcom_err ==== //depot/projects/ia64/lib/libpam/modules/pam_unix/pam_unix.c#6 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_unix/pam_unix.c,v 1.28 2002/04/06 19:30:04 des Exp $"); +__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_unix/pam_unix.c,v 1.30 2002/04/07 21:18:18 des Exp $"); #include #include @@ -121,16 +121,16 @@ struct options options; struct passwd *pwd; int retval; - const char *pass, *user; - char *encrypted, *password_prompt; + const char *pass, *user, *realpw; + char *prompt; pam_std_option(&options, other_options, argc, argv); PAM_LOG("Options processed"); - if (pam_test_option(&options, PAM_OPT_AUTH_AS_SELF, NULL)) + if (pam_test_option(&options, PAM_OPT_AUTH_AS_SELF, NULL)) { pwd = getpwnam(getlogin()); - else { + } else { retval = pam_get_user(pamh, &user, NULL); if (retval != PAM_SUCCESS) PAM_RETURN(retval); @@ -139,67 +139,32 @@ PAM_LOG("Got user: %s", user); - lc = login_getclass(NULL); - password_prompt = login_getcapstr(lc, "passwd_prompt", - password_prompt, NULL); - login_close(lc); - lc = NULL; - if (pwd != NULL) { - PAM_LOG("Doing real authentication"); - - if (pwd->pw_passwd[0] == '\0' - && pam_test_option(&options, PAM_OPT_NULLOK, NULL)) { - /* - * No password case. XXX Are we giving too much away - * by not prompting for a password? - */ - PAM_LOG("No password, and null password OK"); - PAM_RETURN(PAM_SUCCESS); + realpw = pwd->pw_passwd; + if (realpw[0] == '\0') { + if (!(flags & PAM_DISALLOW_NULL_AUTHTOK) && + pam_test_option(&options, PAM_OPT_NULLOK, NULL)) + PAM_RETURN(PAM_SUCCESS); + realpw = "*"; } - else { - retval = pam_get_authtok(pamh, PAM_AUTHTOK, - &pass, password_prompt); - if (retval != PAM_SUCCESS) - PAM_RETURN(retval); - PAM_LOG("Got password"); - } - encrypted = crypt(pass, pwd->pw_passwd); - if (pass[0] == '\0' && pwd->pw_passwd[0] != '\0') - encrypted = colon; - - PAM_LOG("Encrypted password 1 is: %s", encrypted); - PAM_LOG("Encrypted password 2 is: %s", pwd->pw_passwd); - - retval = strcmp(encrypted, pwd->pw_passwd) == 0 ? - PAM_SUCCESS : PAM_AUTH_ERR; - } - else { - + lc = login_getpwclass(pwd); + } else { PAM_LOG("Doing dummy authentication"); - - /* - * User unknown. - * Encrypt a dummy password so as to not give away too much. - */ - retval = pam_get_authtok(pamh, - PAM_AUTHTOK, &pass, password_prompt); - if (retval != PAM_SUCCESS) - PAM_RETURN(retval); - PAM_LOG("Got password"); - crypt(pass, "xx"); - retval = PAM_AUTH_ERR; + realpw = "*"; + lc = login_getclass(NULL); } - - /* - * The PAM infrastructure will obliterate the cleartext - * password before returning to the application. - */ + prompt = login_getcapstr(lc, "passwd_prompt", NULL, NULL); + retval = pam_get_authtok(pamh, PAM_AUTHTOK, &pass, prompt); + login_close(lc); if (retval != PAM_SUCCESS) - PAM_VERBOSE_ERROR("UNIX authentication refused"); + PAM_RETURN(retval); + PAM_LOG("Got password"); + if (strcmp(crypt(pass, realpw), realpw) == 0) + PAM_RETURN(PAM_SUCCESS); - PAM_RETURN(retval); + PAM_VERBOSE_ERROR("UNIX authentication refused"); + PAM_RETURN(PAM_AUTH_ERR); } PAM_EXTERN int ==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/installation/sparc64/install.sgml#5 (text+ko) ==== @@ -1,6 +1,6 @@ &os;/&arch; &release.current; notes de version - $FreeBSD: src/release/doc/fr_FR.ISO8859-1/relnotes/common/new.sgml,v 1.12 2002/03/10 15:37:56 gioria Exp $ + $FreeBSD: src/release/doc/fr_FR.ISO8859-1/relnotes/common/new.sgml,v 1.13 2002/04/07 09:04:04 gioria Exp $ Le Projet FreeBSD @@ -1368,10 +1368,249 @@ Changements liés a la sécurité + &man.sysinstall.8; permet maintenant a un utilisateur de choisir + un des deux profils de sécurité au moment de l'installation + Ces profils activent ou désactivent alors différents services via + le fichier de configuration &man.rc.conf.5; lors de nouvelles + installations. &merged; + + Un bogue qui fixait le système pour des images ELF exécutables + malformées a été résolu (voir l'avis de sécurité + FreeBSD-SA-00:41). &merged; + + Un trou de sécurité dans l'émulation Linux a été corrigé (voir + l'avis de sécuritéFreeBSD-SA-00:42). &merged; + + Les appels a la librairie de traitement des chaines + ont été corrigés dans beaucoups de programmes, pour réduire + la possiblité d'exploitation des dépassements de tampons. + &merged; + + TCP utilise maintenant une fonction plus aléatoire pour + le choix du nombre initial lors de l'initialisation de la + séquence (voir l'avis de sécurité FreeBSD-SA-00:52). &merged; + + Différents dépassements de tampons dans &man.tcpdump.1; ont été + corrigés (voir l'avis de sécurité FreeBSD-SA-00:61). &merged; + + Le trou de sécurité de &man.top.1; a été corrigé + (voir l'avis de sécurité FreeBSD-SA-00:62). &merged; + + Un potentiel trou de sécurité du a une erreur potentielle + dans &man.gethostbyname.3; a été corrigé (voir l'avis de sécurité + FreeBSD-SA-00:63). &merged; + + Un potentiel dépassement de tampon dans la libraire + &man.ncurses.3; permettant l'execution de programme + via &man.systat.1; a été corrigé(voir l'avis de sécurité + FreeBSD-SA-00:68). &merged; + + La vulnérabilité de &man.telnetd.8; causant + une consommation importante de ressources du serveur + a été corrigée (voir l'avis de sécurité FreeBSD-SA-00:69). &merged; + La commande nat deny_incoming de + &man.ppp.8; fonctionne maintenant correctement (voir l'avis + de sécurité FreeBSD-SA-00:70). &merged; - + La vulnérabilité dans les fichiers temporaires créés par + &man.csh.1;/&man.tcsh.1; permettant d'écraser certains fichiers + utilisateurs a été corrigée (voir l'avis de sécurité FreeBSD-SA-00:76). &merged; + + Le binaire &man.ssh.1; n'est plus SUID root par défaut. &merged; + + Différentes corrections ont été apportées à l'implémentation + de Kerberos IV relatives a des variables d'environnements, un + possible dépassent de tampon, et l'écrasement de fichiers de + tickets. &merged; + + &man.telnet.1; nettoie maintenant mieux son environnement.&merged; + + Différentes vulnérabilités dans &man.procfs.5; ont été + corrigées (voir l'avis de sécurité FreeBSD-SA-00:77). &merged; + + Un bogue dans OpenSSH dans + lesquel un serveur n'etait pas capable de désactivé &man.ssh-agent.1; + ou X11Forwarding a été corrigé (voir l'avis + de sécurité FreeBSD-SA-01:01). &merged; + + Un bogue dans &man.ipfw.8; et &man.ip6fw.8; traitant + des segments TCP entrants comme des connexions établies + a été corrigé (voir l'avis de sécurité FreeBSD-SA-01:08). &merged; + + Un bogue dans &man.crontab.1; permettant a un utilisateur + de lire n'importe quel fichier en ayant une syntaxe de &man.crontab.5; + valide a été corrigé(voir l'avis de sécurité FreeBSD-SA-01:09). &merged; + + La vulnérabilité dans &man.inetd.8; permettant l'accès + en lecture aux 16 bytes initiaux des fichiers accessibles + par le groupe wheel a été corrigé(voir + l'avis de sécrurité FreeBSD-SA-01:11). &merged; + + Un bogue dans &man.periodic.8; qui utilisait des fichiers + temporaires de façon peu sécurisée a été corrigé (voir l'avis + de sécurité FreeBSD-SA-01:12). &merged; + + Un bogue dans &man.sort.1; permettant a un attaquant d'arrèter + son traitement a été corrigé (voir l'avis de sécurité + FreeBSD-SA-01:13). &merged; + + OpenSSH intègre maintenant un code + permettant de prévenir (plutot que de limiter le nombre + de connexions) aux attaques permettant de trouver la clef + du serveur (pas la clef de la machine) en regénérant une nouvelle + clef lorsque un problème RSA est détecté (voir l'avis de sécurité + FreeBSD-SA-01:24). &merged; + + Plusieurs programmes ont subit une correction dans le formattage + de l'affichage de sortie des chaines pour réduire le risque + de vulnérabilités. &merged; + + Plusieurs programmes utilisants des fichiers temporaires les + utilisent maintenant de façon plus sécurisée. &merged; + + Un bogue dans ICMP premettant a un attaquant de perturber + les sessions TCP et UDP a été corrigé. &merged; + + Un bogue dans &man.timed.8;, causant un crash lors de l'envoi + de paquets mals formés, a été corrigé (voir l'avis de sécurité + FreeBSD-SA-01:28). &merged; + + Un bogue dans &man.rwhod.8;, permettant de le "crasher" lors de + l'envoi de paquets mal formés a été corrigé (voir l'avis de sécurité + FreeBSD-SA-01:29). &merged; + + Un trou de sécurité dans les implémentations FFS et EXT2FS de &os; + permettant à des utilisateurs l'accès a des données non autorisées, a été + corrigé. (voir l'avis de sécurité FreeBSD-SA-01:30). &merged; + + Un vulnérabilité, exploitable à distance, de &man.ntpd.8; a + été réglée(voir l'avis de sécurité FreeBSD-SA-01:31). &merged; + + Un trou de sécurité dans le mécanisme de "cache" des fragments IP + d'IPFilter a été corrigé (voir l'avis de + sécurité FreeBSD-SA-01:32). &merged; + + Un dépassement dans &man.glob.3; permettant l'execution de code + dans le serveur de FTP a été corrigé. De plus, pour prévenir certaines + formes d'attaques DOS, &man.glob.3; permet de limiter le nombre de + répertoires qu'il retourne. &man.ftpd.8; utilise maintenant cette + fonctionnalité (voeyz l'avis de sécurité FreeBSD-SA-01:33). &merged; + + L'initialisation des numéros de séquences TCP est plus + aléatoire (voyez l'avis de sécurité FreeBSD-SA-01:39). Suite + a des potentiels problèmes de compatiblité, cette fonctionalité + de sécurité peut etre activé ou désactivé via la variable sysctl + net.inet.tcp.tcp_seq_genscheme.&merged; + + Un vulnérabilité dans les routines &man.fts.3; (utilisés par + des applications pour parcourir de façon récursive un système de fichier) + permet à un programme de lire des fichiers en dehors de la hiérarchie + de répertoire autorisé. Ce bogue a été corrigé voir l'avis de sécurité + FreeBSD-SA-01:40). &merged; + + L'implémentation de la couche TCP de &os; a été rendue plus + résistante aux attaques SYN, en éliminant le segment RST envoyé + normalement lors du nettoyage d'une connexion de la file + d'attente + + OpenSSH prend, maintenant, l'UID + de l'utilisateur avant d'essayer d'effacer le fichier + d'authentification, annulant les effets d'une "race" + + A flaw allowed some signal handlers to remain in effect in a + child process after being exec-ed from its parent. This allowed + an attacker to execute arbitrary code in the context of a setuid + binary. This flaw has been corrected (see security advisory + FreeBSD-SA-01:42). &merged; + + Un dépassement de buffer à distance dans &man.tcpdump.1; a été + corrigé (voir l'avis de sécurité FreeBSD-SA-01:48). &merged; + + Un dépassement de buffer à distance dans &man.telnetd.8; a été + corrigé (voir l'avis de sécurité FreeBSD-SA-01:49). &merged; + + Les nouvelles variables sysctl + net.inet.ip.maxfragpackets + et net.inet.ip6.maxfragpackets permettent + de limiter la quantité de mémoire utilisée par les fragments des + paquets IPv4 et IPv6; cela permet de mieux se prévenir contre les + attaques par déni de service (voyez l'avis de sécurité + FreeBSD-SA-01:52). &merged; + + Tous les services dans inetd.conf sont + maintenant désactivés par défaut pour les nouvelles installations. + &man.sysinstall.8; done la possiblité d'activer ou désactiver + &man.inetd.8; pour les nouvelles installation, comme l'édition + de inetd.conf. &merged; + + Un bogue dans l'implémentation des règles de &man.ipfw.8; + comportant me sur les liens point à point a + été corrigé. Les règles de filtrage comportant me + matchaient l'adresse IP distante a la place de l'adresse IP + local (voyez l'avis de sécurité FreeBSD-SA-01:53). &merged; + + Une vulnérabilité dans &man.procfs.5;, permettant a un + processus de lire des informations sensibles depuis l'espace + mémoire d'un autre processus, a été corrigée (voyez l'avis + de sécurité FreeBSD-SA-01:55). &merged; + + La vérification d'un nom de machine en mode + PARANOID de tcp_wrappers + fonctionne maintenant correctement (voyez l'avis de sécurité + FreeBSD-SA-01:56). &merged; + + Un bogue permettant de passer root dans &man.sendmail.8; a + été corrigé(voyez l'avis de sécurité FreeBSD-SA-01:57). &merged; + + Un bogue permettant de passer root a distance dans &man.lpd.8; + a été corrigé (voyez l'avis de sécurité FreeBSD-SA-01:58). &merged; + + Une "race condition" dans &man.rmuser.8; qui rendait brièvement + /etc/master.passwd lisible pour tout utilisateur + a été corrigée (voyez l'avis de sécurité FreeBSD-SA-01:59). &merged; + + Un bogue dans UUCP a été + corrigé (voyez l'avis de sécurité FreeBSD-SA-01:62). Tous + les binaires n'appartenant pas a root + dans les "path" système standard ont maintenant le drapeau + schg permettant d'empecher l'exploitation + de bogues via &man.cron.8;, par root, + ou par un utilisateur autre que celui auquel appartient + le binaire. De plus &man.uustat.1; est lancé maintenant + via /etc/periodic/daily/410.status-uucp + sous l'utilisateur uucp, et non + plus root. Dans &os; -CURRENT, + UUCP ne fait plus partie des binaires + systèmes, et a été déplacé dans la collection des Ports. &merged; + + Un trou de sécurité, sous la forme d'un dépassement de buffer, dans + l'appel système &man.semop.2; a été corrigé.&merged; + + Un trou de sécurité dans OpenSSH, + permettant a un utilisateur d'executer du code avec des privilèges + supplémentaires si UseLogin yes était activé, a été + corrigé. Notez que la valeur par défaut de ce paramètre est + UseLogin no. (Voyez l'avis de sécurité + FreeBSD-SA-01:63.) &merged; + + L'utilisation de répertoire temporaire par &man.pkg.add.1; + pouvait permettre a un attaquant local de modifier le contenu + des binaires distribués au moment ou ils allaient etre installé. Ce + bogue a été corrigé (voyez l'avis de sécurité FreeBSD-SA-02:01). + &merged; + + Une "race condition" dans &man.pw.8;, permettant de lire + le contenu du fichier /etc/master.passwd, a + été corrigé (voyez l'avis de sécurité FreeBSD-SA-02:02.) &merged; + + Un bogue dans &man.k5su.8; pouvait permettre a un processus + ayant obtenu des privilèges super-utilisateur de les ré-obtenir. Ce + bogue a été corrigé (voyez l'avis de sécurité FreeBSD-SA-02:07.) + &merged; + + Changements dans les programmes utilisateurs ==== //depot/projects/ia64/release/picobsd/floppy.tree/etc/rc1#3 (text+ko) ==== @@ -1,5 +1,5 @@ #!/bin/sh -# $FreeBSD: src/release/picobsd/floppy.tree/etc/rc1,v 1.3 2002/03/10 20:47:26 luigi Exp $ +# $FreeBSD: src/release/picobsd/floppy.tree/etc/rc1,v 1.4 2002/04/07 20:41:09 luigi Exp $ ### rc1, next stage 'rc' for PicoBSD -- THIS IS NOT THE NORMAL /etc/rc . /etc/rc.conf.defaults # Load default procedures @@ -16,8 +16,9 @@ ### Now use some variables to override files in /etc ### ( IFS='' -[ -n ${host_conf} ] && echo ${host_conf} > /etc/host.conf -[ -n ${resolv_conf} ] && echo ${resolv_conf} > /etc/resolv.conf +[ -n "${host_conf}" ] && echo ${host_conf} > /etc/host.conf +[ -n "${resolv_conf}" ] && echo ${resolv_conf} > /etc/resolv.conf +[ -n "${rc_local}" ] && echo ${rc_local} > /etc/rc.local unset IFS ) @@ -43,6 +44,9 @@ [ -n "$network_pass1_done" ] && network_pass2 [ -n "$network_pass2_done" ] && network_pass3 +[ -f /etc/syslog.conf -a -f /stand/syslogd ] && \ + { echo "Starting syslogd."; syslogd ${syslogd_flags} ; } + [ "${inetd_enable}" = "YES" -a -f /stand/inetd ] && \ { echo "Starting inetd."; inetd ${inetd_flags} ; } ==== //depot/projects/ia64/release/picobsd/tinyware/simple_httpd/simple_httpd.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/release/picobsd/tinyware/simple_httpd/simple_httpd.c,v 1.7 2001/07/09 09:23:43 brian Exp $ + * $FreeBSD: src/release/picobsd/tinyware/simple_httpd/simple_httpd.c,v 1.12 2002/04/07 17:42:27 asmodai Exp $ */ #include @@ -99,12 +99,13 @@ perror("bind socket"); exit(1); } - if (verbose) printf("simple_httpd\n",http_port); + if (verbose) printf("simple_httpd:%d\n",http_port); } /* * Wait here until we see an incoming http request */ +void wait_connection(void) { int lg; @@ -121,7 +122,8 @@ /* * Print timestamp for HTTP HEAD and GET */ -http_date() +void +http_date(void) { time_t tl; char buff[50]; @@ -135,6 +137,7 @@ /* * Send data to the open socket */ +void http_output(char *html) { write(con_sock, html, strlen(html)); @@ -146,6 +149,7 @@ * Create and write the log information to file * Log file format is one line per entry */ +void log_line(char *req) { char log_buff[256]; @@ -189,16 +193,15 @@ * We have a connection. Identify what type of request GET, HEAD, CGI, etc * and do what needs to be done */ -http_request() +void +http_request(void) { - int fd, lg, ld, i; + int fd, lg, i; int cmd = 0; - int http1 = 0; char *p, *par; char *filename, *c; struct stat file_status; char req[1024]; - char msg[1024]; char buff[8192]; lg = read(con_sock, req, 1024); @@ -309,7 +312,7 @@ http_output(httpd_server_ident); http_date(); - sprintf(buff, "Content-length: %d\r\n", file_status.st_size); + sprintf(buff, "Content-length: %lld\r\n", file_status.st_size); if (strstr(filename,".txt")) { strcpy(buff,"Content-type: text/plain\r\n"); @@ -347,12 +350,12 @@ * Should satisfy simple httpd needs. For more demanding situations * apache is probably a better (but much larger) choice. */ +int main(int argc, char *argv[]) { extern char *optarg; extern int optind; - int bflag, ch, fd, ld; - int lg; + int ch, ld; int httpd_group = 65534; pid_t server_pid; ==== //depot/projects/ia64/sbin/disklabel/Makefile#3 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 3/17/94 -# $FreeBSD: src/sbin/disklabel/Makefile,v 1.8 2001/12/04 02:19:45 obrien Exp $ +# $FreeBSD: src/sbin/disklabel/Makefile,v 1.10 2002/04/08 06:26:46 phk Exp $ PROG= disklabel SRCS= disklabel.c @@ -8,6 +8,5 @@ .if ${MACHINE} == "pc98" CFLAGS+= -DPC98 .endif -WARNS= 0 .include ==== //depot/projects/ia64/sbin/disklabel/disklabel.c#8 (text+ko) ==== @@ -52,7 +52,7 @@ /* from static char sccsid[] = "@(#)disklabel.c 1.2 (Symmetric) 11/28/85"; */ #endif static const char rcsid[] = - "$FreeBSD: src/sbin/disklabel/disklabel.c,v 1.47 2002/04/04 20:22:15 phk Exp $"; + "$FreeBSD: src/sbin/disklabel/disklabel.c,v 1.49 2002/04/07 10:57:00 phk Exp $"; #endif /* not lint */ #include @@ -134,8 +134,6 @@ struct disklabel lab; char bootarea[BBSIZE]; -/* partition 'c' is the full disk and is special */ -#define FULL_DISK_PART 2 #define MAX_PART ('z') #define MAX_NUM_PARTS (1 + MAX_PART - 'a') char part_size_type[MAX_NUM_PARTS]; @@ -159,12 +157,7 @@ int rflag; int disable_write; /* set to disable writing to disk label */ -#ifdef DEBUG -int debug; -#define OPTIONS "BNRWb:denrs:w" -#else #define OPTIONS "BNRWb:enrs:w" -#endif int main(int argc, char *argv[]) @@ -220,11 +213,6 @@ usage(); op = WRITE; break; -#ifdef DEBUG - case 'd': - debug++; - break; -#endif case '?': default: usage(); @@ -628,11 +616,6 @@ } #endif } -#ifdef DEBUG - if (debug) - fprintf(stderr, "bootstraps: xxboot = %s, bootxx = %s\n", - xxboot, bootxx ? bootxx : "NONE"); -#endif /* * Strange rules: @@ -945,10 +928,11 @@ int getasciilabel(FILE *f, struct disklabel *lp) { - char **cpp, *cp; + char *cp; + const char **cpp; struct partition *pp; unsigned int part; - char *tp, *s, line[BUFSIZ]; + char *tp, line[BUFSIZ]; int v, lineno = 0, errors = 0; int i; @@ -973,7 +957,7 @@ tp = "unknown"; cpp = dktypenames; for (; cpp < &dktypenames[DKMAXTYPES]; cpp++) - if ((s = *cpp) && streq(s, tp)) { + if (*cpp && streq(*cpp, tp)) { lp->d_type = cpp - dktypenames; goto next; } @@ -1216,7 +1200,7 @@ cp = tp, tp = word(cp); cpp = fstypenames; for (; cpp < &fstypenames[FSMAXTYPES]; cpp++) - if ((s = *cpp) && streq(s, cp)) { + if (*cpp && streq(*cpp, cp)) { pp->p_fstype = cpp - fstypenames; goto gottype; @@ -1366,8 +1350,7 @@ pp = &lp->d_partitions[i]; if (part_set[i]) { if (part_size_type[i] == '*') { - /* partition 2 ('c') is special */ - if (i == FULL_DISK_PART) { + if (i == RAW_PART) { pp->p_size = lp->d_secperunit; } else { if (hog_part != -1) @@ -1416,8 +1399,7 @@ pp->p_size = size; } /* else already in sectors */ - /* partition 2 ('c') is special */ - if (i != FULL_DISK_PART) + if (i != RAW_PART) total_size += size; } } @@ -1427,7 +1409,7 @@ if (total_percent != 0) { long free_space = lp->d_secperunit - total_size; if (total_percent > 100) { - fprintf(stderr,"total percentage %d is greater than 100\n", + fprintf(stderr,"total percentage %lu is greater than 100\n", total_percent); errors++; } @@ -1446,7 +1428,7 @@ } } else { fprintf(stderr, - "%ld sectors available to give to '*' and '%' partitions\n", + "%ld sectors available to give to '*' and '%%' partitions\n", free_space); errors++; /* fix? set all % partitions to size 0? */ @@ -1466,8 +1448,7 @@ pp = &lp->d_partitions[i]; if (part_set[i]) { if (part_offset_type[i] == '*') { - /* partition 2 ('c') is special */ - if (i == FULL_DISK_PART) { + if (i == RAW_PART) { pp->p_offset = 0; } else { pp->p_offset = current_offset; @@ -1475,28 +1456,26 @@ } } else { /* allow them to be out of order for old-style tables */ - /* partition 2 ('c') is special */ if (pp->p_offset < current_offset && - seen_default_offset && i != FULL_DISK_PART) { + seen_default_offset && i != RAW_PART) { fprintf(stderr, -"Offset %ld for partition %c overlaps previous partition which ends at %ld\n", - pp->p_offset,i+'a',current_offset); +"Offset %ld for partition %c overlaps previous partition which ends at %lu\n", + (long)pp->p_offset,i+'a',current_offset); fprintf(stderr, "Labels with any *'s for offset must be in ascending order by sector\n"); errors++; } else if (pp->p_offset != current_offset && - i != FULL_DISK_PART && seen_default_offset) { + i != RAW_PART && seen_default_offset) { /* * this may give unneeded warnings if * partitions are out-of-order */ Warning( "Offset %ld for partition %c doesn't match expected value %ld", - pp->p_offset, i + 'a', current_offset); + (long)pp->p_offset, i + 'a', current_offset); } } - /* partition 2 ('c') is special */ - if (i != FULL_DISK_PART) + if (i != RAW_PART) current_offset = pp->p_offset + pp->p_size; } } @@ -1534,7 +1513,7 @@ part); errors++; } - if (i == FULL_DISK_PART) + if (i == RAW_PART) { if (pp->p_fstype != FS_UNUSED) Warning("partition %c is not marked as unused!",part); @@ -1553,8 +1532,7 @@ /* check for overlaps */ /* this will check for all possible overlaps once and only once */ for (j = 0; j < i; j++) { - /* partition 2 ('c') is special */ - if (j != FULL_DISK_PART && i != FULL_DISK_PART && + if (j != RAW_PART && i != RAW_PART && part_set[i] && part_set[j]) { pp2 = &lp->d_partitions[j]; if (pp2->p_offset < pp->p_offset + pp->p_size && ==== //depot/projects/ia64/sbin/mount_std/mount_std.c#3 (text+ko) ==== @@ -43,13 +43,15 @@ #ifndef lint static const char rcsid[] = - "$FreeBSD: src/sbin/mount_std/mount_std.c,v 1.12 2002/03/21 13:14:20 imp Exp $"; + "$FreeBSD: src/sbin/mount_std/mount_std.c,v 1.13 2002/04/07 13:28:18 mux Exp $"; #endif /* not lint */ #include #include +#include #include +#include #include #include #include @@ -74,6 +76,7 @@ int ch, mntflags; char mntpath[MAXPATHLEN]; struct vfsconf vfc; + struct iovec iov[4]; int error; /* @@ -121,7 +124,25 @@ /* resolve the mountpoint with realpath(3) */ (void)checkpath(argv[1], mntpath); - if (mount(vfc.vfc_name, mntpath, mntflags, NULL)) + error = mount(vfc.vfc_name, mntpath, mntflags, NULL); + + /* + * Try with the new mount syscall in the case + * this filesystem has been converted. + */ + if (error && errno == EOPNOTSUPP) { + iov[0].iov_base = "fstype"; + iov[0].iov_len = sizeof("fstype"); + iov[1].iov_base = vfc.vfc_name; + iov[1].iov_len = strlen(vfc.vfc_name) + 1; + iov[2].iov_base = "fspath"; + iov[2].iov_len = sizeof("fstype"); + iov[3].iov_base = mntpath; + iov[3].iov_len = strlen(mntpath) + 1; + error = nmount(iov, 4, mntflags); + } + + if (error) err(EX_OSERR, NULL); exit(0); } ==== //depot/projects/ia64/sbin/newfs/mkfs.c#8 (text+ko) ==== @@ -36,7 +36,7 @@ static char sccsid[] = "@(#)mkfs.c 8.11 (Berkeley) 5/3/95"; #endif static const char rcsid[] = - "$FreeBSD: src/sbin/newfs/mkfs.c,v 1.53 2002/04/04 09:45:11 bde Exp $"; + "$FreeBSD: src/sbin/newfs/mkfs.c,v 1.54 2002/04/07 14:57:57 phk Exp $"; #endif /* not lint */ #include @@ -217,9 +217,9 @@ sblock.fs_nspf = sblock.fs_fsize / sectorsize; sblock.fs_fsbtodb = ilog2(NSPF(&sblock)); sblock.fs_sblkno = - roundup(howmany(bbsize + sbsize, sblock.fs_fsize), sblock.fs_frag); + roundup(howmany(BBSIZE + SBSIZE, sblock.fs_fsize), sblock.fs_frag); sblock.fs_cblkno = (daddr_t)(sblock.fs_sblkno + - roundup(howmany(sbsize, sblock.fs_fsize), sblock.fs_frag)); + roundup(howmany(SBSIZE, sblock.fs_fsize), sblock.fs_frag)); sblock.fs_iblkno = sblock.fs_cblkno + sblock.fs_frag; sblock.fs_cgoffset = roundup(howmany(sblock.fs_nsect, NSPF(&sblock)), sblock.fs_frag); @@ -545,7 +545,7 @@ */ fsinit(utime); sblock.fs_time = utime; - wtfs((int)SBOFF / sectorsize, sbsize, (char *)&sblock); + wtfs((int)SBOFF / sectorsize, SBSIZE, (char *)&sblock); for (i = 0; i < sblock.fs_cssize; i += sblock.fs_bsize) wtfs(fsbtodb(&sblock, sblock.fs_csaddr + numfrags(&sblock, i)), sblock.fs_cssize - i < sblock.fs_bsize ? @@ -556,7 +556,7 @@ */ for (cylno = 0; cylno < sblock.fs_ncg; cylno++) wtfs(fsbtodb(&sblock, cgsblock(&sblock, cylno)), - sbsize, (char *)&sblock); + SBSIZE, (char *)&sblock); wtfsflush(); >>> TRUNCATED FOR MAIL (1000 lines) <<< To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message