From owner-p4-projects Thu Apr 4 18: 7:41 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 049D837B41B; Thu, 4 Apr 2002 18:05:45 -0800 (PST) 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 277BA37B417 for ; Thu, 4 Apr 2002 18:05:43 -0800 (PST) Received: (from perforce@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g3525bN19609 for perforce@freebsd.org; Thu, 4 Apr 2002 18:05:37 -0800 (PST) (envelope-from peter@freebsd.org) Date: Thu, 4 Apr 2002 18:05:37 -0800 (PST) Message-Id: <200204050205.g3525bN19609@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm Subject: PERFORCE change 9079 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=9079 Change 9079 by peter@peter_daintree on 2002/04/04 18:04:48 IFC @9077 Affected files ... ... //depot/projects/ia64/Makefile.inc1#15 integrate ... //depot/projects/ia64/contrib/pam_modules/pam_passwdqc/INTERNALS#1 branch ... //depot/projects/ia64/contrib/pam_modules/pam_passwdqc/LICENSE#1 branch ... //depot/projects/ia64/contrib/pam_modules/pam_passwdqc/Makefile#1 branch ... //depot/projects/ia64/contrib/pam_modules/pam_passwdqc/PLATFORMS#1 branch ... //depot/projects/ia64/contrib/pam_modules/pam_passwdqc/README#1 branch ... //depot/projects/ia64/contrib/pam_modules/pam_passwdqc/pam_macros.h#1 branch ... //depot/projects/ia64/contrib/pam_modules/pam_passwdqc/pam_passwdqc.c#1 branch ... //depot/projects/ia64/contrib/pam_modules/pam_passwdqc/pam_passwdqc.spec#1 branch ... //depot/projects/ia64/contrib/pam_modules/pam_passwdqc/passwdqc.h#1 branch ... //depot/projects/ia64/contrib/pam_modules/pam_passwdqc/passwdqc_check.c#1 branch ... //depot/projects/ia64/contrib/pam_modules/pam_passwdqc/passwdqc_random.c#1 branch ... //depot/projects/ia64/contrib/pam_modules/pam_passwdqc/wordset_4k.c#1 branch ... //depot/projects/ia64/etc/mail/Makefile#5 integrate ... //depot/projects/ia64/gnu/usr.bin/cc/cc1/Makefile#3 integrate ... //depot/projects/ia64/gnu/usr.bin/cc/cc1obj/Makefile#3 integrate ... //depot/projects/ia64/gnu/usr.bin/cc/cc_tools/Makefile#4 integrate ... //depot/projects/ia64/gnu/usr.bin/cc/cc_tools/freebsd-native.h#3 integrate ... //depot/projects/ia64/gnu/usr.bin/send-pr/send-pr.1#2 integrate ... //depot/projects/ia64/include/string.h#4 integrate ... //depot/projects/ia64/include/strings.h#2 integrate ... //depot/projects/ia64/lib/libpam/modules/modules.inc#4 integrate ... //depot/projects/ia64/lib/libpam/modules/pam_passwdqc/Makefile#1 branch ... //depot/projects/ia64/lib/libpam/modules/pam_ssh/pam_ssh.c#6 integrate ... //depot/projects/ia64/lib/libpam/modules/pam_ssh/pam_ssh.h#2 integrate ... //depot/projects/ia64/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#8 integrate ... //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#16 integrate ... //depot/projects/ia64/sbin/disklabel/disklabel.5#3 integrate ... //depot/projects/ia64/sbin/disklabel/disklabel.c#7 integrate ... //depot/projects/ia64/sbin/newfs/mkfs.c#7 integrate ... //depot/projects/ia64/sbin/newfs/newfs.c#8 integrate ... //depot/projects/ia64/share/termcap/Makefile#3 integrate ... //depot/projects/ia64/share/zoneinfo/asia#4 integrate ... //depot/projects/ia64/share/zoneinfo/australasia#4 integrate ... //depot/projects/ia64/share/zoneinfo/backward#3 integrate ... //depot/projects/ia64/share/zoneinfo/europe#4 integrate ... //depot/projects/ia64/share/zoneinfo/leapseconds#4 integrate ... //depot/projects/ia64/share/zoneinfo/northamerica#4 integrate ... //depot/projects/ia64/share/zoneinfo/southamerica#4 integrate ... //depot/projects/ia64/share/zoneinfo/zone.tab#4 integrate ... //depot/projects/ia64/sys/alpha/alpha/busdma_machdep.c#3 integrate ... //depot/projects/ia64/sys/alpha/alpha/interrupt.c#7 integrate ... //depot/projects/ia64/sys/alpha/alpha/machdep.c#9 integrate ... //depot/projects/ia64/sys/alpha/alpha/mp_machdep.c#6 integrate ... //depot/projects/ia64/sys/alpha/alpha/pmap.c#7 integrate ... //depot/projects/ia64/sys/alpha/alpha/vm_machdep.c#4 integrate ... //depot/projects/ia64/sys/alpha/osf1/osf1_misc.c#6 integrate ... //depot/projects/ia64/sys/alpha/osf1/osf1_signal.c#4 integrate ... //depot/projects/ia64/sys/boot/efi/loader/Makefile#6 integrate ... //depot/projects/ia64/sys/coda/coda_psdev.c#3 integrate ... //depot/projects/ia64/sys/compat/linux/linux_signal.c#2 integrate ... //depot/projects/ia64/sys/compat/svr4/svr4_signal.c#3 integrate ... //depot/projects/ia64/sys/conf/NOTES#2 integrate ... //depot/projects/ia64/sys/conf/files#13 integrate ... //depot/projects/ia64/sys/conf/files.sparc64#8 integrate ... //depot/projects/ia64/sys/conf/majors#3 integrate ... //depot/projects/ia64/sys/conf/options#8 integrate ... //depot/projects/ia64/sys/dev/aac/aacvar.h#5 integrate ... //depot/projects/ia64/sys/dev/acpica/Osd/OsdSchedule.c#5 integrate ... //depot/projects/ia64/sys/dev/acpica/Osd/OsdSynch.c#3 integrate ... //depot/projects/ia64/sys/dev/acpica/acpi.c#7 integrate ... //depot/projects/ia64/sys/dev/an/if_an.c#8 integrate ... //depot/projects/ia64/sys/dev/ar/if_ar.c#2 integrate ... //depot/projects/ia64/sys/dev/bge/if_bge.c#7 integrate ... //depot/projects/ia64/sys/dev/bge/if_bgereg.h#4 integrate ... //depot/projects/ia64/sys/dev/fxp/if_fxp.c#5 integrate ... //depot/projects/ia64/sys/dev/fxp/if_fxpvar.h#3 integrate ... //depot/projects/ia64/sys/dev/gx/if_gx.c#3 integrate ... //depot/projects/ia64/sys/dev/gx/if_gxvar.h#2 integrate ... //depot/projects/ia64/sys/dev/ichsmb/ichsmb.c#3 integrate ... //depot/projects/ia64/sys/dev/isp/isp.c#5 integrate ... //depot/projects/ia64/sys/dev/isp/isp_freebsd.c#4 integrate ... //depot/projects/ia64/sys/dev/isp/isp_freebsd.h#6 integrate ... //depot/projects/ia64/sys/dev/isp/isp_inline.h#4 integrate ... //depot/projects/ia64/sys/dev/isp/isp_pci.c#5 integrate ... //depot/projects/ia64/sys/dev/isp/ispmbox.h#4 integrate ... //depot/projects/ia64/sys/dev/isp/ispvar.h#6 integrate ... //depot/projects/ia64/sys/dev/lmc/if_lmc.c#2 integrate ... //depot/projects/ia64/sys/dev/mk48txx/mk48txx.c#1 branch ... //depot/projects/ia64/sys/dev/mk48txx/mk48txxreg.h#1 branch ... //depot/projects/ia64/sys/dev/my/if_my.c#1 branch ... //depot/projects/ia64/sys/dev/my/if_myreg.h#1 branch ... //depot/projects/ia64/sys/dev/nge/if_nge.c#5 integrate ... //depot/projects/ia64/sys/dev/pccbb/pccbb.c#5 integrate ... //depot/projects/ia64/sys/dev/pdq/pdq_ifsubr.c#4 integrate ... //depot/projects/ia64/sys/dev/random/yarrow.c#3 integrate ... //depot/projects/ia64/sys/dev/sio/sio.c#8 integrate ... //depot/projects/ia64/sys/dev/sound/isa/ad1816.c#2 integrate ... //depot/projects/ia64/sys/dev/sound/isa/emu8000.c#3 integrate ... //depot/projects/ia64/sys/dev/sound/isa/gusmidi.c#3 integrate ... //depot/projects/ia64/sys/dev/sound/isa/mpu.c#3 integrate ... //depot/projects/ia64/sys/dev/sound/isa/mss.c#3 integrate ... //depot/projects/ia64/sys/dev/sound/isa/opl.c#3 integrate ... //depot/projects/ia64/sys/dev/sound/isa/sbc.c#2 integrate ... //depot/projects/ia64/sys/dev/sound/isa/uartsio.c#3 integrate ... //depot/projects/ia64/sys/dev/sound/midi/midi.c#3 integrate ... //depot/projects/ia64/sys/dev/sound/midi/sequencer.c#4 integrate ... //depot/projects/ia64/sys/dev/sound/midi/timer.c#2 integrate ... //depot/projects/ia64/sys/dev/sound/pci/cmi.c#3 integrate ... //depot/projects/ia64/sys/dev/sound/pci/csamidi.c#3 integrate ... //depot/projects/ia64/sys/dev/sound/pci/ds1.c#2 integrate ... //depot/projects/ia64/sys/dev/sound/pci/emu10k1.c#2 integrate ... //depot/projects/ia64/sys/dev/sound/pci/t4dwave.c#3 integrate ... //depot/projects/ia64/sys/dev/sound/pcm/ac97.c#4 integrate ... //depot/projects/ia64/sys/dev/sound/pcm/channel.c#5 integrate ... //depot/projects/ia64/sys/dev/sound/pcm/mixer.c#2 integrate ... //depot/projects/ia64/sys/dev/sound/pcm/sndstat.c#2 integrate ... //depot/projects/ia64/sys/dev/sound/pcm/sound.c#3 integrate ... //depot/projects/ia64/sys/dev/sound/pcm/sound.h#3 integrate ... //depot/projects/ia64/sys/dev/sr/if_sr.c#2 integrate ... //depot/projects/ia64/sys/dev/txp/if_txp.c#5 integrate ... //depot/projects/ia64/sys/dev/usb/if_aue.c#6 integrate ... //depot/projects/ia64/sys/dev/usb/if_cue.c#4 integrate ... //depot/projects/ia64/sys/dev/usb/if_kue.c#4 integrate ... //depot/projects/ia64/sys/dev/usb/udbp.c#2 integrate ... //depot/projects/ia64/sys/dev/usb/usb_ethersubr.c#3 integrate ... //depot/projects/ia64/sys/dev/vinum/vinumconfig.c#3 integrate ... //depot/projects/ia64/sys/dev/wi/if_wavelan_ieee.h#4 integrate ... //depot/projects/ia64/sys/dev/wi/if_wi.c#12 integrate ... //depot/projects/ia64/sys/dev/wi/if_wi_pccard.c#2 integrate ... //depot/projects/ia64/sys/dev/wi/if_wireg.h#6 integrate ... //depot/projects/ia64/sys/dev/wi/if_wivar.h#2 integrate ... //depot/projects/ia64/sys/fs/hpfs/hpfs_hash.c#4 integrate ... //depot/projects/ia64/sys/fs/hpfs/hpfs_vfsops.c#6 integrate ... //depot/projects/ia64/sys/fs/msdosfs/msdosfs_denode.c#4 integrate ... //depot/projects/ia64/sys/fs/ntfs/ntfs_ihash.c#3 integrate ... //depot/projects/ia64/sys/fs/ntfs/ntfs_subr.c#6 integrate ... //depot/projects/ia64/sys/fs/pseudofs/pseudofs.c#5 integrate ... //depot/projects/ia64/sys/fs/pseudofs/pseudofs_fileno.c#3 integrate ... //depot/projects/ia64/sys/fs/pseudofs/pseudofs_vncache.c#4 integrate ... //depot/projects/ia64/sys/geom/geom.h#4 integrate ... //depot/projects/ia64/sys/geom/geom_bsd.c#5 integrate ... //depot/projects/ia64/sys/geom/geom_dev.c#6 integrate ... //depot/projects/ia64/sys/geom/geom_disk.c#5 integrate ... //depot/projects/ia64/sys/geom/geom_dump.c#4 integrate ... //depot/projects/ia64/sys/geom/geom_event.c#3 integrate ... //depot/projects/ia64/sys/geom/geom_int.h#2 integrate ... //depot/projects/ia64/sys/geom/geom_io.c#3 integrate ... //depot/projects/ia64/sys/geom/geom_mbr.c#4 integrate ... //depot/projects/ia64/sys/geom/geom_pc98.c#2 integrate ... //depot/projects/ia64/sys/geom/geom_slice.c#6 integrate ... //depot/projects/ia64/sys/geom/geom_slice.h#3 integrate ... //depot/projects/ia64/sys/geom/geom_subr.c#4 integrate ... //depot/projects/ia64/sys/geom/geom_sunlabel.c#4 integrate ... //depot/projects/ia64/sys/i386/i386/autoconf.c#7 integrate ... //depot/projects/ia64/sys/i386/i386/machdep.c#10 integrate ... //depot/projects/ia64/sys/i386/i386/mp_machdep.c#7 integrate ... //depot/projects/ia64/sys/i386/i386/trap.c#8 integrate ... //depot/projects/ia64/sys/i386/i386/vm86.c#4 integrate ... //depot/projects/ia64/sys/i386/ibcs2/ibcs2_signal.c#3 integrate ... //depot/projects/ia64/sys/i386/isa/if_el.c#2 integrate ... //depot/projects/ia64/sys/i386/isa/intr_machdep.c#4 integrate ... //depot/projects/ia64/sys/i386/linux/linux.h#2 integrate ... //depot/projects/ia64/sys/i386/linux/linux_sysvec.c#7 integrate ... //depot/projects/ia64/sys/i386/svr4/svr4_machdep.c#4 integrate ... //depot/projects/ia64/sys/i4b/capi/capi_l4if.c#4 integrate ... //depot/projects/ia64/sys/i4b/capi/iavc/iavc_isa.c#4 integrate ... //depot/projects/ia64/sys/i4b/capi/iavc/iavc_pci.c#4 integrate ... //depot/projects/ia64/sys/i4b/driver/i4b_ing.c#4 integrate ... //depot/projects/ia64/sys/i4b/driver/i4b_ipr.c#5 integrate ... //depot/projects/ia64/sys/i4b/driver/i4b_rbch.c#4 integrate ... //depot/projects/ia64/sys/i4b/driver/i4b_trace.c#4 integrate ... //depot/projects/ia64/sys/i4b/layer1/ifpi/i4b_ifpi_pci.c#3 integrate ... //depot/projects/ia64/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c#2 integrate ... //depot/projects/ia64/sys/i4b/layer1/ifpnp/i4b_ifpnp_avm.c#3 integrate ... //depot/projects/ia64/sys/i4b/layer1/ihfc/i4b_ihfc_drv.c#3 integrate ... //depot/projects/ia64/sys/i4b/layer1/isic/i4b_bchan.c#4 integrate ... //depot/projects/ia64/sys/i4b/layer1/iwic/i4b_iwic_bchan.c#3 integrate ... //depot/projects/ia64/sys/i4b/layer2/i4b_l2.c#4 integrate ... //depot/projects/ia64/sys/i4b/layer4/i4b_i4bdrv.c#5 integrate ... //depot/projects/ia64/sys/ia64/ia64/autoconf.c#6 integrate ... //depot/projects/ia64/sys/ia64/ia64/interrupt.c#7 integrate ... //depot/projects/ia64/sys/ia64/ia64/machdep.c#22 integrate ... //depot/projects/ia64/sys/ia64/ia64/pmap.c#13 integrate ... //depot/projects/ia64/sys/ia64/ia64/trap.c#17 integrate ... //depot/projects/ia64/sys/ia64/ia64/vm_machdep.c#6 integrate ... //depot/projects/ia64/sys/ia64/include/elf.h#2 integrate ... //depot/projects/ia64/sys/isofs/cd9660/cd9660_node.c#4 integrate ... //depot/projects/ia64/sys/kern/clock_if.m#1 branch ... //depot/projects/ia64/sys/kern/init_main.c#5 integrate ... //depot/projects/ia64/sys/kern/kern_descrip.c#12 integrate ... //depot/projects/ia64/sys/kern/kern_exec.c#11 integrate ... //depot/projects/ia64/sys/kern/kern_fork.c#7 integrate ... //depot/projects/ia64/sys/kern/kern_intr.c#6 integrate ... //depot/projects/ia64/sys/kern/kern_jail.c#6 integrate ... //depot/projects/ia64/sys/kern/kern_lock.c#4 integrate ... //depot/projects/ia64/sys/kern/kern_malloc.c#5 integrate ... //depot/projects/ia64/sys/kern/kern_mtxpool.c#5 integrate ... //depot/projects/ia64/sys/kern/kern_mutex.c#6 integrate ... //depot/projects/ia64/sys/kern/kern_proc.c#8 integrate ... //depot/projects/ia64/sys/kern/kern_resource.c#6 integrate ... //depot/projects/ia64/sys/kern/kern_sema.c#3 integrate ... //depot/projects/ia64/sys/kern/kern_sig.c#7 integrate ... //depot/projects/ia64/sys/kern/kern_sx.c#6 integrate ... //depot/projects/ia64/sys/kern/kern_timeout.c#3 integrate ... //depot/projects/ia64/sys/kern/subr_clock.c#1 branch ... //depot/projects/ia64/sys/kern/subr_disklabel.c#6 integrate ... //depot/projects/ia64/sys/kern/subr_eventhandler.c#3 integrate ... //depot/projects/ia64/sys/kern/subr_mbuf.c#4 integrate ... //depot/projects/ia64/sys/kern/subr_rman.c#4 integrate ... //depot/projects/ia64/sys/kern/subr_smp.c#6 integrate ... //depot/projects/ia64/sys/kern/subr_taskqueue.c#3 integrate ... //depot/projects/ia64/sys/kern/subr_trap.c#6 integrate ... //depot/projects/ia64/sys/kern/subr_witness.c#7 integrate ... //depot/projects/ia64/sys/kern/sys_generic.c#8 integrate ... //depot/projects/ia64/sys/kern/sys_pipe.c#10 integrate ... //depot/projects/ia64/sys/kern/uipc_syscalls.c#7 integrate ... //depot/projects/ia64/sys/kern/vfs_bio.c#12 integrate ... //depot/projects/ia64/sys/kern/vfs_subr.c#9 integrate ... //depot/projects/ia64/sys/net/bpf.c#6 integrate ... //depot/projects/ia64/sys/net/bsd_comp.c#4 integrate ... //depot/projects/ia64/sys/net/ethernet.h#4 integrate ... //depot/projects/ia64/sys/net/if.c#6 integrate ... //depot/projects/ia64/sys/net/if_arcsubr.c#3 integrate ... //depot/projects/ia64/sys/net/if_ethersubr.c#8 integrate ... //depot/projects/ia64/sys/net/if_loop.c#5 integrate ... //depot/projects/ia64/sys/net/if_ppp.c#5 integrate ... //depot/projects/ia64/sys/net/if_sl.c#5 integrate ... //depot/projects/ia64/sys/net/if_spppsubr.c#3 integrate ... //depot/projects/ia64/sys/net/if_tap.c#7 integrate ... //depot/projects/ia64/sys/net/if_tun.c#4 integrate ... //depot/projects/ia64/sys/net/if_vlan.c#5 integrate ... //depot/projects/ia64/sys/net/ppp_deflate.c#4 integrate ... //depot/projects/ia64/sys/netatalk/ddp_usrreq.c#5 integrate ... //depot/projects/ia64/sys/netatm/atm_subr.c#4 integrate ... //depot/projects/ia64/sys/netgraph/ng_base.c#4 integrate ... //depot/projects/ia64/sys/netinet/if_ether.c#6 integrate ... //depot/projects/ia64/sys/netinet/ip_input.c#7 integrate ... //depot/projects/ia64/sys/netinet6/ip6_input.c#5 integrate ... //depot/projects/ia64/sys/netipx/ipx_input.c#3 integrate ... //depot/projects/ia64/sys/netnatm/natm_proto.c#4 integrate ... //depot/projects/ia64/sys/netns/ns_input.c#3 integrate ... //depot/projects/ia64/sys/netsmb/smb_subr.h#5 integrate ... //depot/projects/ia64/sys/pc98/i386/machdep.c#10 integrate ... //depot/projects/ia64/sys/pc98/pc98/sio.c#8 integrate ... //depot/projects/ia64/sys/pci/if_dc.c#8 integrate ... //depot/projects/ia64/sys/pci/if_pcn.c#4 integrate ... //depot/projects/ia64/sys/pci/if_rl.c#6 integrate ... //depot/projects/ia64/sys/pci/if_sf.c#4 integrate ... //depot/projects/ia64/sys/pci/if_sis.c#7 integrate ... //depot/projects/ia64/sys/pci/if_sk.c#4 integrate ... //depot/projects/ia64/sys/pci/if_ste.c#4 integrate ... //depot/projects/ia64/sys/pci/if_ti.c#6 integrate ... //depot/projects/ia64/sys/pci/if_tl.c#4 integrate ... //depot/projects/ia64/sys/pci/if_vr.c#4 integrate ... //depot/projects/ia64/sys/pci/if_wb.c#4 integrate ... //depot/projects/ia64/sys/pci/if_xl.c#6 integrate ... //depot/projects/ia64/sys/sparc64/sparc64/clock.c#3 integrate ... //depot/projects/ia64/sys/sparc64/sparc64/eeprom.c#1 branch ... //depot/projects/ia64/sys/sparc64/sparc64/eeprom_ebus.c#1 branch ... //depot/projects/ia64/sys/sparc64/sparc64/eeprom_sbus.c#1 branch ... //depot/projects/ia64/sys/sparc64/sparc64/intr_machdep.c#6 integrate ... //depot/projects/ia64/sys/sparc64/sparc64/machdep.c#9 integrate ... //depot/projects/ia64/sys/sparc64/sparc64/mp_machdep.c#4 integrate ... //depot/projects/ia64/sys/sys/_lock.h#2 integrate ... //depot/projects/ia64/sys/sys/clock.h#1 branch ... //depot/projects/ia64/sys/sys/disklabel.h#9 integrate ... //depot/projects/ia64/sys/sys/mutex.h#7 integrate ... //depot/projects/ia64/sys/sys/pcpu.h#5 integrate ... //depot/projects/ia64/sys/sys/proc.h#11 integrate ... //depot/projects/ia64/sys/sys/signalvar.h#4 integrate ... //depot/projects/ia64/sys/ufs/ffs/ffs_vfsops.c#10 integrate ... //depot/projects/ia64/sys/ufs/ifs/ifs_vfsops.c#4 integrate ... //depot/projects/ia64/sys/ufs/ufs/ufs_dirhash.c#5 integrate ... //depot/projects/ia64/sys/ufs/ufs/ufs_ihash.c#3 integrate ... //depot/projects/ia64/sys/vm/device_pager.c#5 integrate ... //depot/projects/ia64/sys/vm/phys_pager.c#3 integrate ... //depot/projects/ia64/sys/vm/swap_pager.c#7 integrate ... //depot/projects/ia64/sys/vm/uma_core.c#5 integrate ... //depot/projects/ia64/sys/vm/uma_int.h#3 integrate ... //depot/projects/ia64/sys/vm/vm_extern.h#6 integrate ... //depot/projects/ia64/sys/vm/vm_meter.c#3 integrate ... //depot/projects/ia64/sys/vm/vm_object.c#7 integrate ... //depot/projects/ia64/sys/vm/vm_page.c#7 integrate ... //depot/projects/ia64/sys/vm/vm_pageq.c#4 integrate ... //depot/projects/ia64/sys/vm/vm_pager.c#6 integrate ... //depot/projects/ia64/sys/vm/vm_zone.c#6 integrate ... //depot/projects/ia64/tools/regression/geom/geom_simdev.c#3 integrate ... //depot/projects/ia64/tools/regression/geom/geom_simdisk.c#3 integrate ... //depot/projects/ia64/tools/regression/geom/geom_simdisk.h#3 integrate ... //depot/projects/ia64/tools/regression/geom/geom_simdisk_xml.c#4 integrate ... //depot/projects/ia64/usr.bin/sort/extern.h#3 integrate ... //depot/projects/ia64/usr.bin/sort/fields.c#3 integrate ... //depot/projects/ia64/usr.bin/sort/files.c#3 integrate ... //depot/projects/ia64/usr.bin/sort/init.c#4 integrate ... //depot/projects/ia64/usr.bin/sort/msort.c#3 integrate ... //depot/projects/ia64/usr.bin/sort/sort.c#4 integrate ... //depot/projects/ia64/usr.bin/sort/sort.h#2 integrate ... //depot/projects/ia64/usr.bin/yacc/error.c#5 integrate ... //depot/projects/ia64/usr.bin/yacc/main.c#5 integrate ... //depot/projects/ia64/usr.bin/yacc/mkpar.c#5 integrate ... //depot/projects/ia64/usr.bin/yacc/output.c#5 integrate ... //depot/projects/ia64/usr.bin/yacc/reader.c#5 integrate ... //depot/projects/ia64/usr.bin/yacc/verbose.c#5 integrate ... //depot/projects/ia64/usr.bin/yacc/yacc.1#2 integrate ... //depot/projects/ia64/usr.bin/yacc/yyfix.1#2 integrate ... //depot/projects/ia64/usr.sbin/ppp/auth.c#3 integrate ... //depot/projects/ia64/usr.sbin/ppp/radius.h#2 integrate ... //depot/projects/ia64/usr.sbin/wicontrol/wicontrol.c#3 integrate Differences ... ==== //depot/projects/ia64/Makefile.inc1#15 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.248 2002/04/01 20:47:27 joe Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.249 2002/04/04 06:49:46 ru Exp $ # # Make command line options: # -DMAKE_KERBEROS4 to build KerberosIV @@ -226,8 +226,8 @@ usr/share/groff_font/devutf8 \ usr/share/tmac/mdoc usr/share/tmac/mm -INCDIRS= arpa g++/std isc objc protocols readline rpc rpcsvc openssl \ - security +INCDIRS= arpa dev fs g++/std isc isofs objc protocols \ + readline rpc rpcsvc openssl security ufs # # buildworld ==== //depot/projects/ia64/etc/mail/Makefile#5 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/etc/mail/Makefile,v 1.24 2002/03/28 03:30:27 gshapiro Exp $ +# $FreeBSD: src/etc/mail/Makefile,v 1.26 2002/04/04 07:42:12 ru Exp $ # # This Makefile provides an easy way to generate the configuration # file and database maps for the sendmail(8) daemon. ==== //depot/projects/ia64/gnu/usr.bin/cc/cc1/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/cc/cc1/Makefile,v 1.22 2002/04/04 01:25:26 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/cc/cc1/Makefile,v 1.23 2002/04/04 19:26:12 obrien Exp $ .include "../Makefile.inc" @@ -27,7 +27,7 @@ ${.ALLSRC} > c-parse.y ${YACC} -d -o c-parse.c c-parse.y -CLEANFILES+= c-parse.c c-parse.h c-parse.y # insurance +CLEANFILES+= c-parse.c c-parse.h c-parse.y # insurance #----------------------------------------------------------------------- ==== //depot/projects/ia64/gnu/usr.bin/cc/cc1obj/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/cc/cc1obj/Makefile,v 1.16 2002/04/04 01:25:26 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/cc/cc1obj/Makefile,v 1.17 2002/04/04 19:26:13 obrien Exp $ .include "../Makefile.inc" @@ -28,7 +28,7 @@ ${YACC} -d -o objc-parse.c objc-parse.y mv objc-parse.h c-parse.h -CLEANFILES+= objc-parse.c c-parse.h objc-parse.y # insurance +CLEANFILES+= objc-parse.c c-parse.h objc-parse.y # insurance #----------------------------------------------------------------------- ==== //depot/projects/ia64/gnu/usr.bin/cc/cc_tools/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/cc/cc_tools/Makefile,v 1.54 2002/04/04 00:11:00 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/cc/cc_tools/Makefile,v 1.55 2002/04/04 18:24:56 obrien Exp $ # # This could probably be merged with ../cc_int/Makefile, but bsd.lib.mk @@ -12,7 +12,6 @@ # aliases of generated headers. CFLAGS+= -I. -WARNS= 0 .include "../Makefile.inc" ==== //depot/projects/ia64/gnu/usr.bin/cc/cc_tools/freebsd-native.h#3 (text+ko) ==== @@ -1,10 +1,9 @@ -/* $FreeBSD: src/gnu/usr.bin/cc/cc_tools/freebsd-native.h,v 1.13 2002/02/24 06:05:22 obrien Exp $ */ +/* $FreeBSD: src/gnu/usr.bin/cc/cc_tools/freebsd-native.h,v 1.14 2002/04/04 19:36:33 obrien Exp $ */ /* FREEBSD_NATIVE is defined when gcc is integrated into the FreeBSD source tree so it can be configured appropriately without using the GNU configure/build mechanism. */ -#undef FREEBSD_NATIVE #define FREEBSD_NATIVE 1 #undef SYSTEM_INCLUDE_DIR /* We don't need one for now. */ @@ -29,17 +28,17 @@ libraries: MD_EXEC_PREFIX:MD_STARTFILE_PREFIX:STANDARD_STARTFILE_PREFIX */ #undef TOOLDIR_BASE_PREFIX /* Old?? This is not documented. */ +#define STANDARD_EXEC_PREFIX PREFIX"/libexec/" #undef MD_EXEC_PREFIX /* We don't want one. */ -#define STANDARD_EXEC_PREFIX PREFIX"/libexec/" /* Under FreeBSD, the normal location of the various *crt*.o files is the /usr/lib directory. */ -#undef MD_STARTFILE_PREFIX /* We don't need one for now. */ #define STANDARD_STARTFILE_PREFIX PREFIX"/lib/" #ifdef CROSS_COMPILE #define CROSS_STARTFILE_PREFIX PREFIX"/lib/" #endif +#undef MD_STARTFILE_PREFIX /* We don't need one for now. */ /* For the native system compiler, we actually build libgcc in a profiled version. So we should use it with -pg. */ ==== //depot/projects/ia64/gnu/usr.bin/send-pr/send-pr.1#2 (text+ko) ==== @@ -22,7 +22,7 @@ .\" .\" --------------------------------------------------------------------------- .\" -.\" $FreeBSD: src/gnu/usr.bin/send-pr/send-pr.1,v 1.11 2001/06/17 11:22:57 alex Exp $ +.\" $FreeBSD: src/gnu/usr.bin/send-pr/send-pr.1,v 1.12 2002/04/04 18:31:36 des Exp $ .nh .TH SEND-PR 1 3.113 "February 1993" .SH NAME @@ -194,6 +194,9 @@ .B i386 Intel x86 processor specific problems. .TP +.B ia64 +Intel ia64 processor specific problems. +.TP .B kern Changes or enhancements to the architecture independent kernel sources. .TP @@ -203,8 +206,14 @@ .B ports Corrections or enhancements (including new ports) to the ports collection. .TP -.B sparc +.B sparc64 SPARC processor specific problems. +.TP +.B standards +Standards conformance issues. +.TP +.B www +Changes or enhancements to the FreeBSD website. .SH ENVIRONMENT The environment variable .B EDITOR ==== //depot/projects/ia64/include/string.h#4 (text+ko) ==== @@ -31,13 +31,23 @@ * SUCH DAMAGE. * * @(#)string.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/include/string.h,v 1.12 2002/03/23 17:24:53 imp Exp $ + * $FreeBSD: src/include/string.h,v 1.13 2002/04/04 05:41:57 mike Exp $ */ #ifndef _STRING_H_ #define _STRING_H_ + +#include #include +/* + * Prototype functions which were historically defined in , but + * are required by POSIX to be prototyped in . + */ +#if __BSD_VISIBLE +#include +#endif + #ifdef _BSD_SIZE_T_ typedef _BSD_SIZE_T_ size_t; #undef _BSD_SIZE_T_ @@ -47,53 +57,45 @@ #define NULL 0 #endif -#include - __BEGIN_DECLS void *memchr(const void *, int, size_t); int memcmp(const void *, const void *, size_t); -void *memcpy(void *, const void *, size_t); +void *memcpy(void * __restrict, const void * __restrict, size_t); void *memmove(void *, const void *, size_t); void *memset(void *, int, size_t); -char *strcat(char *, const char *); +char *strcat(char * __restrict, const char * __restrict); char *strchr(const char *, int); int strcmp(const char *, const char *); int strcoll(const char *, const char *); -char *strcpy(char *, const char *); +char *strcpy(char * __restrict, const char * __restrict); size_t strcspn(const char *, const char *); char *strerror(int); size_t strlen(const char *); -char *strncat(char *, const char *, size_t); +char *strncat(char * __restrict, const char * __restrict, size_t); int strncmp(const char *, const char *, size_t); -char *strncpy(char *, const char *, size_t); +char *strncpy(char * __restrict, const char * __restrict, size_t); char *strpbrk(const char *, const char *); char *strrchr(const char *, int); size_t strspn(const char *, const char *); char *strstr(const char *, const char *); -char *strtok(char *, const char *); -size_t strxfrm(char *, const char *, size_t); +char *strtok(char * __restrict, const char * __restrict); +size_t strxfrm(char * __restrict, const char * __restrict, size_t); -/* Nonstandard routines */ -#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) -int bcmp(const void *, const void *, size_t); -void bcopy(const void *, void *, size_t); -void bzero(void *, size_t); -int ffs(int); -char *index(const char *, int); -void *memccpy(void *, const void *, int, size_t); -char *rindex(const char *, int); -int strcasecmp(const char *, const char *); -char *strcasestr(const char *, const char *); +#if __POSIX_VISIBLE >= 200112 +void *memccpy(void * __restrict, const void * __restrict, int, size_t); char *strdup(const char *); int strerror_r(int, char *, size_t); +char *strtok_r(char *, const char *, char **); +#endif + +#if __BSD_VISIBLE +char *strcasestr(const char *, const char *); size_t strlcat(char *, const char *, size_t); size_t strlcpy(char *, const char *, size_t); void strmode(int, char *); -int strncasecmp(const char *, const char *, size_t); char *strnstr(const char *, const char *, size_t); char *strsep(char **, const char *); char *strsignal(int); -char *strtok_r(char *, const char *, char **); void swab(const void *, void *, size_t); #endif __END_DECLS ==== //depot/projects/ia64/include/strings.h#2 (text+ko) ==== @@ -1,6 +1,6 @@ /*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. + * Copyright (c) 2002 Mike Barcroft + * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -10,18 +10,11 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) @@ -30,7 +23,29 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * @(#)strings.h 8.1 (Berkeley) 6/2/93 + * $FreeBSD: src/include/strings.h,v 1.2 2002/04/04 05:41:57 mike Exp $ */ -#include +#ifndef _STRINGS_H_ +#define _STRINGS_H_ + +#include +#include + +#ifdef _BSD_SIZE_T_ +typedef _BSD_SIZE_T_ size_t; +#undef _BSD_SIZE_T_ +#endif + +__BEGIN_DECLS +int bcmp(const void *, const void *, size_t); /* LEGACY */ +void bcopy(const void *, void *, size_t); /* LEGACY */ +void bzero(void *, size_t); /* LEGACY */ +int ffs(int); +char *index(const char *, int); /* LEGACY */ +char *rindex(const char *, int); /* LEGACY */ +int strcasecmp(const char *, const char *); +int strncasecmp(const char *, const char *, size_t); +__END_DECLS + +#endif /* _STRINGS_H_ */ ==== //depot/projects/ia64/lib/libpam/modules/modules.inc#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libpam/modules/modules.inc,v 1.3 2002/03/07 02:23:16 green Exp $ +# $FreeBSD: src/lib/libpam/modules/modules.inc,v 1.4 2002/04/04 16:08:28 des Exp $ MODULES = MODULES += pam_deny @@ -14,6 +14,7 @@ MODULES += pam_nologin MODULES += pam_opie MODULES += pam_opieaccess +MODULES += pam_passwdqc MODULES += pam_permit MODULES += pam_radius MODULES += pam_rootok ==== //depot/projects/ia64/lib/libpam/modules/pam_ssh/pam_ssh.c#6 (text+ko) ==== @@ -32,27 +32,26 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. + * + * $Id: pam_ssh.c,v 1.23 2001/08/20 01:44:02 akorty Exp $ */ #include -__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_ssh/pam_ssh.c,v 1.28 2002/03/14 23:27:59 des Exp $"); +__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_ssh/pam_ssh.c,v 1.29 2002/04/04 18:45:21 des Exp $"); #include -#include #include #include -#include +#include #include #include -#include #include #include #include -#include #include -#define PAM_SM_AUTH +#define PAM_SM_AUTH #define PAM_SM_ACCOUNT #define PAM_SM_SESSION #define PAM_SM_PASSWORD @@ -70,16 +69,12 @@ #include "log.h" #include "pam_ssh.h" -static int auth_via_key(pam_handle_t *, int, const char *, const char *, const struct passwd *, const char *); -static void key_cleanup(pam_handle_t *, void *, int); -static void ssh_cleanup(pam_handle_t *, void *, int); - /* - * Generic cleanup function for SSH "Key" type. + * Generic cleanup function for OpenSSH "Key" type. */ -static void -key_cleanup(pam_handle_t *pamh __unused, void *data, int error_status __unused) +void +key_cleanup(pam_handle_t *pamh, void *data, int error_status) { if (data) key_free(data); @@ -90,8 +85,8 @@ * Generic PAM cleanup function for this module. */ -static void -ssh_cleanup(pam_handle_t *pamh __unused, void *data, int error_status __unused) +void +ssh_cleanup(pam_handle_t *pamh, void *data, int error_status) { if (data) free(data); @@ -107,39 +102,46 @@ */ static int -auth_via_key(pam_handle_t *pamh, int type, const char *file, - const char *dir, const struct passwd *user, const char *pass) +auth_via_key(pam_handle_t *pamh, const char *file, const char *dir, + const struct passwd *user, const char *pass) { - char *comment; /* private key comment */ - char *data_name; /* PAM state */ - static int indx = 0; /* for saved keys */ - Key *key; /* user's key */ - char *path; /* to key files */ - int retval; /* from calls */ - uid_t saved_uid; /* caller's uid */ + char *comment; /* private key comment */ + char *data_name; /* PAM state */ + static int index = 0; /* for saved keys */ + Key *key; /* user's key */ + char *path; /* to key files */ + int retval; /* from calls */ + uid_t saved_uid; /* caller's uid */ /* locate the user's private key file */ + if (!asprintf(&path, "%s/%s", dir, file)) { - syslog(LOG_CRIT, "%s: %m", MODULE_NAME); + openpam_log(PAM_LOG_ERROR, "%s: %m", MODULE_NAME); return PAM_SERVICE_ERR; } - saved_uid = geteuid(); - /* - * Try to decrypt the private key with the passphrase provided. - * If success, the user is authenticated. - */ - seteuid(user->pw_uid); - key = key_load_private_type(type, path, pass, &comment); + + saved_uid = getuid(); + + /* Try to decrypt the private key with the passphrase provided. If + success, the user is authenticated. */ + + comment = NULL; + (void) setreuid(user->pw_uid, saved_uid); + key = key_load_private(path, pass, &comment); + (void) setuid(saved_uid); free(path); - seteuid(saved_uid); - if (key == NULL) + if (!comment) + comment = strdup(file); + if (!key) { + free(comment); return PAM_AUTH_ERR; - /* - * Save the key and comment to pass to ssh-agent in the session - * phase. - */ - if (!asprintf(&data_name, "ssh_private_key_%d", indx)) { - syslog(LOG_CRIT, "%s: %m", MODULE_NAME); + } + + /* save the key and comment to pass to ssh-agent in the session + phase */ + + if (!asprintf(&data_name, "ssh_private_key_%d", index)) { + openpam_log(PAM_LOG_ERROR, "%s: %m", MODULE_NAME); free(comment); return PAM_SERVICE_ERR; } @@ -150,8 +152,8 @@ free(comment); return retval; } - if (!asprintf(&data_name, "ssh_key_comment_%d", indx)) { - syslog(LOG_CRIT, "%s: %m", MODULE_NAME); + if (!asprintf(&data_name, "ssh_key_comment_%d", index)) { + openpam_log(PAM_LOG_ERROR, "%s: %m", MODULE_NAME); free(comment); return PAM_SERVICE_ERR; } @@ -161,435 +163,478 @@ free(comment); return retval; } - ++indx; + + ++index; return PAM_SUCCESS; } -PAM_EXTERN int -pam_sm_authenticate(pam_handle_t *pamh, int flags __unused, int argc, const char **argv) +/* + * Add the keys stored by auth_via_key() to the agent connected to the + * socket provided. + */ + +static int +add_keys(pam_handle_t *pamh, char *socket) { - struct options options; /* module options */ - int authenticated; /* user authenticated? */ - char *dotdir; /* .ssh2 dir name */ - struct dirent *dotdir_ent; /* .ssh2 dir entry */ - DIR *dotdir_p; /* .ssh2 dir pointer */ - const char *pass; /* passphrase */ - struct passwd *pwd; /* user's passwd entry */ - struct passwd *pwd_keep; /* our own copy */ - int retval; /* from calls */ - int pam_auth_dsa; /* Authorised via DSA */ - int pam_auth_rsa; /* Authorised via RSA */ - const char *user; /* username */ - - pam_std_option(&options, NULL, argc, argv); + AuthenticationConnection *ac; /* connection to ssh-agent */ + char *comment; /* private key comment */ + char *data_name; /* PAM state */ + int final; /* final return value */ + int index; /* for saved keys */ + Key *key; /* user's private key */ + int retval; /* from calls */ - PAM_LOG("Options processed"); - - retval = pam_get_user(pamh, &user, NULL); - if (retval != PAM_SUCCESS) - PAM_RETURN(retval); - pwd = getpwnam(user); - if (pwd == NULL || pwd->pw_dir == NULL) - /* delay? */ - PAM_RETURN(PAM_AUTH_ERR); - - PAM_LOG("Got user: %s", user); - /* - * Pass prompt message to application and receive - * passphrase. + * Connect to the agent. + * + * XXX Because ssh_get_authentication_connection() gets the + * XXX agent parameters from the environment, we have to + * XXX temporarily replace the environment with the PAM + * XXX environment list. This is a hack. */ - retval = pam_get_authtok(pamh, &pass, NEED_PASSPHRASE); - if (retval != PAM_SUCCESS) - PAM_RETURN(retval); - OpenSSL_add_all_algorithms(); /* required for DSA */ + { + extern char **environ; + char **saved, **evp; - PAM_LOG("Got passphrase"); - - /* - * Either the DSA or the RSA key will authenticate us, but if - * we can decrypt both, we'll do so here so we can cache them in - * the session phase. - */ - if (!asprintf(&dotdir, "%s/%s", pwd->pw_dir, SSH_CLIENT_DIR)) { - syslog(LOG_CRIT, "%s: %m", MODULE_NAME); - PAM_RETURN(PAM_SERVICE_ERR); + saved = environ; + if ((environ = pam_getenvlist(pamh)) == NULL) { + environ = saved; + openpam_log(PAM_LOG_ERROR, "%s: %m", MODULE_NAME); + return (PAM_BUF_ERR); + } + ac = ssh_get_authentication_connection(); + for (evp = environ; *evp; evp++) + free(*evp); + free(environ); + environ = saved; } - pam_auth_dsa = auth_via_key(pamh, KEY_DSA, SSH_CLIENT_ID_DSA, dotdir, - pwd, pass); - pam_auth_rsa = auth_via_key(pamh, KEY_RSA1, SSH_CLIENT_IDENTITY, dotdir, - pwd, pass); - authenticated = 0; - if (pam_auth_dsa == PAM_SUCCESS) - authenticated++; - if (pam_auth_rsa == PAM_SUCCESS) - authenticated++; - - PAM_LOG("Done pre-authenticating; got %d", authenticated); - - /* - * Compatibility with SSH2 from SSH Communications Security. - */ - if (!asprintf(&dotdir, "%s/%s", pwd->pw_dir, SSH2_CLIENT_DIR)) { - syslog(LOG_CRIT, "%s: %m", MODULE_NAME); - PAM_RETURN(PAM_SERVICE_ERR); + if (!ac) { + openpam_log(PAM_LOG_ERROR, "%s: %s: %m", MODULE_NAME, socket); + return PAM_SESSION_ERR; } - /* - * Try to load anything that looks like a private key. For - * now, we only support DSA and RSA keys. - */ - dotdir_p = opendir(dotdir); - while (dotdir_p && (dotdir_ent = readdir(dotdir_p))) { - /* skip public keys */ - if (strcmp(&dotdir_ent->d_name[dotdir_ent->d_namlen - - strlen(SSH2_PUB_SUFFIX)], SSH2_PUB_SUFFIX) == 0) - continue; - /* DSA keys */ - if (strncmp(dotdir_ent->d_name, SSH2_DSA_PREFIX, - strlen(SSH2_DSA_PREFIX)) == 0) - retval = auth_via_key(pamh, KEY_DSA, - dotdir_ent->d_name, dotdir, pwd, pass); - /* RSA keys */ - else if (strncmp(dotdir_ent->d_name, SSH2_RSA_PREFIX, - strlen(SSH2_RSA_PREFIX)) == 0) - retval = auth_via_key(pamh, KEY_RSA, - dotdir_ent->d_name, dotdir, pwd, pass); - /* skip other files */ - else - continue; - authenticated += (retval == PAM_SUCCESS); - } - if (!authenticated) { - PAM_VERBOSE_ERROR("SSH authentication refused"); - PAM_RETURN(PAM_AUTH_ERR); - } - PAM_LOG("Done authenticating; got %d", authenticated); + /* hand off each private key to the agent */ - /* - * Copy the passwd entry (in case successive calls are made) - * and save it for the session phase. - */ - pwd_keep = malloc(sizeof *pwd); - if (pwd_keep == NULL) { - syslog(LOG_CRIT, "%m"); - PAM_RETURN(PAM_SERVICE_ERR); + final = 0; + for (index = 0; ; index++) { + if (!asprintf(&data_name, "ssh_private_key_%d", index)) { + openpam_log(PAM_LOG_ERROR, "%s: %m", MODULE_NAME); + ssh_close_authentication_connection(ac); + return PAM_SERVICE_ERR; + } + retval = pam_get_data(pamh, data_name, (const void **)&key); + free(data_name); + if (retval != PAM_SUCCESS) + break; + if (!asprintf(&data_name, "ssh_key_comment_%d", index)) { + openpam_log(PAM_LOG_ERROR, "%s: %m", MODULE_NAME); + ssh_close_authentication_connection(ac); + return PAM_SERVICE_ERR; + } + retval = pam_get_data(pamh, data_name, + (const void **)&comment); + free(data_name); + if (retval != PAM_SUCCESS) + break; + retval = ssh_add_identity(ac, key, comment); + if (!final) + final = retval; } - memcpy(pwd_keep, pwd, sizeof *pwd_keep); - retval = pam_set_data(pamh, "ssh_passwd_entry", pwd_keep, ssh_cleanup); - if (retval != PAM_SUCCESS) { - free(pwd_keep); - PAM_RETURN(retval); - } + ssh_close_authentication_connection(ac); - PAM_LOG("Saved ssh_passwd_entry"); - - PAM_RETURN(PAM_SUCCESS); + return final ? PAM_SUCCESS : PAM_SESSION_ERR; } PAM_EXTERN int -pam_sm_setcred(pam_handle_t *pamh __unused, int flags __unused, int argc, const char **argv) +pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, + const char **argv) { - struct options options; /* module options */ + int authenticated; /* user authenticated? */ + char *dotdir; /* .ssh dir name */ + char *file; /* current key file */ + char *keyfiles; /* list of key files to add */ >>> TRUNCATED FOR MAIL (1000 lines) <<< To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message