CVS commit: src/sys/netinet
Module Name:src Committed By: christos Date: Sat Mar 17 02:48:51 UTC 2012 Modified Files: src/sys/netinet: tcp_usrreq.c Log Message: PR/46077: M. Nunberg: Stat should not fial on connecting socket. To generate a diff of this commit: cvs rdiff -u -r1.162 -r1.163 src/sys/netinet/tcp_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/tcp_usrreq.c diff -u src/sys/netinet/tcp_usrreq.c:1.162 src/sys/netinet/tcp_usrreq.c:1.163 --- src/sys/netinet/tcp_usrreq.c:1.162 Thu Feb 2 14:43:07 2012 +++ src/sys/netinet/tcp_usrreq.c Fri Mar 16 22:48:51 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_usrreq.c,v 1.162 2012/02/02 19:43:07 tls Exp $ */ +/* $NetBSD: tcp_usrreq.c,v 1.163 2012/03/17 02:48:51 christos Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -95,7 +95,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tcp_usrreq.c,v 1.162 2012/02/02 19:43:07 tls Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tcp_usrreq.c,v 1.163 2012/03/17 02:48:51 christos Exp $"); #include "opt_inet.h" #include "opt_ipsec.h" @@ -267,11 +267,11 @@ tcp_usrreq(struct socket *so, int req, * a (struct inpcb) pointed at by the socket, and this * structure will point at a subsidary (struct tcpcb). */ -#ifndef INET6 - if (inp == 0 && req != PRU_ATTACH) -#else - if ((inp == 0 && in6p == 0) && req != PRU_ATTACH) + if ((inp == 0 +#ifdef INET6 + && in6p == 0 #endif + ) && (req != PRU_ATTACH && req != PRU_SENSE)) { error = EINVAL; goto release;
CVS commit: src/sbin/ifconfig
Module Name:src Committed By: christos Date: Sat Mar 17 02:25:08 UTC 2012 Modified Files: src/sbin/ifconfig: af_inetany.c Log Message: PR/43141: Tobias Nygren: Print an error on unknown interfaces. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sbin/ifconfig/af_inetany.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sbin/ifconfig/af_inetany.c diff -u src/sbin/ifconfig/af_inetany.c:1.14 src/sbin/ifconfig/af_inetany.c:1.15 --- src/sbin/ifconfig/af_inetany.c:1.14 Tue May 24 07:38:56 2011 +++ src/sbin/ifconfig/af_inetany.c Fri Mar 16 22:25:08 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: af_inetany.c,v 1.14 2011/05/24 11:38:56 joerg Exp $ */ +/* $NetBSD: af_inetany.c,v 1.15 2012/03/17 02:25:08 christos Exp $ */ /*- * Copyright (c) 2008 David Young. All rights reserved. @@ -27,7 +27,7 @@ #include #ifndef lint -__RCSID("$NetBSD: af_inetany.c,v 1.14 2011/05/24 11:38:56 joerg Exp $"); +__RCSID("$NetBSD: af_inetany.c,v 1.15 2012/03/17 02:25:08 christos Exp $"); #endif /* not lint */ #include @@ -81,7 +81,7 @@ commit_address(prop_dictionary_t env, pr err(EXIT_FAILURE, "%s: getsock", __func__); if ((ifname = getifinfo(env, oenv, &flags)) == NULL) - return; + err(EXIT_FAILURE, "%s: getifinfo", __func__); strlcpy(param->name[0].buf, ifname, param->name[0].buflen); strlcpy(param->name[1].buf, ifname, param->name[1].buflen);
CVS commit: src/sbin/route
Module Name:src Committed By: christos Date: Sat Mar 17 02:13:45 UTC 2012 Modified Files: src/sbin/route: route.c Log Message: PR/42179: Christoph Badura: Be a little friendlier about missing args. To generate a diff of this commit: cvs rdiff -u -r1.136 -r1.137 src/sbin/route/route.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sbin/route/route.c diff -u src/sbin/route/route.c:1.136 src/sbin/route/route.c:1.137 --- src/sbin/route/route.c:1.136 Sun Dec 25 19:20:43 2011 +++ src/sbin/route/route.c Fri Mar 16 22:13:44 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: route.c,v 1.136 2011/12/26 00:20:43 christos Exp $ */ +/* $NetBSD: route.c,v 1.137 2012/03/17 02:13:44 christos Exp $ */ /* * Copyright (c) 1983, 1989, 1991, 1993 @@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1983, 19 #if 0 static char sccsid[] = "@(#)route.c 8.6 (Berkeley) 4/28/95"; #else -__RCSID("$NetBSD: route.c,v 1.136 2011/12/26 00:20:43 christos Exp $"); +__RCSID("$NetBSD: route.c,v 1.137 2012/03/17 02:13:44 christos Exp $"); #endif #endif /* not lint */ @@ -1031,6 +1031,10 @@ newroute(int argc, char *const *argv) } } } + if ((rtm_addrs & RTA_DST) == 0) + errx(EXIT_FAILURE, "missing destination specification"); + if (*cmd == 'a' && (rtm_addrs & RTA_GATEWAY) == 0) + errx(EXIT_FAILURE, "missing gateway specification"); if (forcehost && forcenet) errx(EXIT_FAILURE, "-host and -net conflict"); else if (forcehost)
CVS commit: src/sys/fs/puffs
Module Name:src Committed By: jakllsch Date: Fri Mar 16 23:13:49 UTC 2012 Modified Files: src/sys/fs/puffs: puffs_vnops.c Log Message: Prevent access beyond end of PUFFS file on read, similar to as is done for NFS. To generate a diff of this commit: cvs rdiff -u -r1.163 -r1.164 src/sys/fs/puffs/puffs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/fs/puffs/puffs_vnops.c diff -u src/sys/fs/puffs/puffs_vnops.c:1.163 src/sys/fs/puffs/puffs_vnops.c:1.164 --- src/sys/fs/puffs/puffs_vnops.c:1.163 Tue Jan 17 09:30:16 2012 +++ src/sys/fs/puffs/puffs_vnops.c Fri Mar 16 23:13:48 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: puffs_vnops.c,v 1.163 2012/01/17 09:30:16 martin Exp $ */ +/* $NetBSD: puffs_vnops.c,v 1.164 2012/03/16 23:13:48 jakllsch Exp $ */ /* * Copyright (c) 2005, 2006, 2007 Antti Kantee. All Rights Reserved. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.163 2012/01/17 09:30:16 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.164 2012/03/16 23:13:48 jakllsch Exp $"); #include #include @@ -1862,6 +1862,9 @@ puffs_vnop_read(void *v) const int advice = IO_ADV_DECODE(ap->a_ioflag); while (uio->uio_resid > 0) { + if (vp->v_size <= uio->uio_offset) { +break; + } bytelen = MIN(uio->uio_resid, vp->v_size - uio->uio_offset); if (bytelen == 0)
CVS commit: src/libexec/ld.elf_so
Module Name:src Committed By: joerg Date: Fri Mar 16 11:44:54 UTC 2012 Modified Files: src/libexec/ld.elf_so: diagassert.c Log Message: This version of __diagssert13 is dead. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/libexec/ld.elf_so/diagassert.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/libexec/ld.elf_so/diagassert.c diff -u src/libexec/ld.elf_so/diagassert.c:1.1 src/libexec/ld.elf_so/diagassert.c:1.2 --- src/libexec/ld.elf_so/diagassert.c:1.1 Thu Mar 15 00:16:07 2012 +++ src/libexec/ld.elf_so/diagassert.c Fri Mar 16 11:44:54 2012 @@ -1,7 +1,7 @@ #include #include -void +__dead void /*ARGSUSED*/ __diagassert13(const char *fn, int fl, const char *fu, const char *m) {
CVS commit: src/tests/lib/libc/arch/powerpc
Module Name:src Committed By: matt Date: Fri Mar 16 08:51:47 UTC 2012 Modified Files: src/tests/lib/libc/arch/powerpc: exec_prot_support.c return_one.S Log Message: Allow testing of exec pages on PowerPC BookE. Make return_one actually do the right thing. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/tests/lib/libc/arch/powerpc/exec_prot_support.c \ src/tests/lib/libc/arch/powerpc/return_one.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/tests/lib/libc/arch/powerpc/exec_prot_support.c diff -u src/tests/lib/libc/arch/powerpc/exec_prot_support.c:1.1 src/tests/lib/libc/arch/powerpc/exec_prot_support.c:1.2 --- src/tests/lib/libc/arch/powerpc/exec_prot_support.c:1.1 Mon Jul 18 23:16:10 2011 +++ src/tests/lib/libc/arch/powerpc/exec_prot_support.c Fri Mar 16 08:51:47 2012 @@ -1,11 +1,11 @@ -/* $NetBSD: exec_prot_support.c,v 1.1 2011/07/18 23:16:10 jym Exp $ */ +/* $NetBSD: exec_prot_support.c,v 1.2 2012/03/16 08:51:47 matt Exp $ */ /*- - * Copyright (c) 2011 The NetBSD Foundation, Inc. + * Copyright (c) 2012 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation - * by Jean-Yves Migeon. + * by Matt Thomas of 3am Software Foundry. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -30,12 +30,23 @@ */ #include -__RCSID("$NetBSD: exec_prot_support.c,v 1.1 2011/07/18 23:16:10 jym Exp $"); +__RCSID("$NetBSD: exec_prot_support.c,v 1.2 2012/03/16 08:51:47 matt Exp $"); #include "../../common/exec_prot.h" +#include + int exec_prot_support(void) { - return NOTIMPL; + int execprot = 0; + size_t len = sizeof(execprot); + + if (sysctlbyname("machdep.execprot", &execprot, &len, NULL, 0) < 0) + return NOTIMPL; + + if (execprot) + return PERPAGE_XP; + + return NO_XP; } Index: src/tests/lib/libc/arch/powerpc/return_one.S diff -u src/tests/lib/libc/arch/powerpc/return_one.S:1.1 src/tests/lib/libc/arch/powerpc/return_one.S:1.2 --- src/tests/lib/libc/arch/powerpc/return_one.S:1.1 Mon Jul 18 23:16:10 2011 +++ src/tests/lib/libc/arch/powerpc/return_one.S Fri Mar 16 08:51:47 2012 @@ -1,8 +1,11 @@ -/* $NetBSD: return_one.S,v 1.1 2011/07/18 23:16:10 jym Exp $ */ +/* $NetBSD: return_one.S,v 1.2 2012/03/16 08:51:47 matt Exp $ */ #include -.globl return_one, return_one_end; +.globl return_one, return_one_end -return_one: return_one_end: - nop +_ENTRY(return_one) + li %r3, 1 + blr +return_one_end: +END(return_one)
CVS commit: src/sys/ufs
Module Name:src Committed By: hannken Date: Fri Mar 16 08:39:54 UTC 2012 Modified Files: src/sys/ufs/ext2fs: ext2fs_lookup.c src/sys/ufs/ufs: ufs_lookup.c Log Message: Fix last commit that broke lookup for dot with op DELETE. Reviewed by: David Holland To generate a diff of this commit: cvs rdiff -u -r1.68 -r1.69 src/sys/ufs/ext2fs/ext2fs_lookup.c cvs rdiff -u -r1.112 -r1.113 src/sys/ufs/ufs/ufs_lookup.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/ufs/ext2fs/ext2fs_lookup.c diff -u src/sys/ufs/ext2fs/ext2fs_lookup.c:1.68 src/sys/ufs/ext2fs/ext2fs_lookup.c:1.69 --- src/sys/ufs/ext2fs/ext2fs_lookup.c:1.68 Tue Mar 13 18:41:03 2012 +++ src/sys/ufs/ext2fs/ext2fs_lookup.c Fri Mar 16 08:39:54 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ext2fs_lookup.c,v 1.68 2012/03/13 18:41:03 elad Exp $ */ +/* $NetBSD: ext2fs_lookup.c,v 1.69 2012/03/16 08:39:54 hannken Exp $ */ /* * Modified for NetBSD 1.2E @@ -48,7 +48,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ext2fs_lookup.c,v 1.68 2012/03/13 18:41:03 elad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ext2fs_lookup.c,v 1.69 2012/03/16 08:39:54 hannken Exp $"); #include #include @@ -586,18 +586,26 @@ found: results->ulr_count = 0; else results->ulr_count = results->ulr_offset - prevoff; - if (flags & ISDOTDOT) - VOP_UNLOCK(vdp); /* race to get the inode */ - error = VFS_VGET(vdp->v_mount, foundino, &tdp); - if (flags & ISDOTDOT) - vn_lock(vdp, LK_EXCLUSIVE | LK_RETRY); - if (error) - return (error); + if (dp->i_number == foundino) { + vref(vdp); + tdp = vdp; + } else { + if (flags & ISDOTDOT) +VOP_UNLOCK(vdp); /* race to get the inode */ + error = VFS_VGET(vdp->v_mount, foundino, &tdp); + if (flags & ISDOTDOT) +vn_lock(vdp, LK_EXCLUSIVE | LK_RETRY); + if (error) +return (error); + } /* * Write access to directory required to delete files. */ if ((error = VOP_ACCESS(vdp, VWRITE, cred)) != 0) { - vput(tdp); + if (dp->i_number == foundino) +vrele(tdp); + else +vput(tdp); return (error); } /* @@ -611,15 +619,13 @@ found: tdp, vdp, genfs_can_sticky(cred, dp->i_uid, VTOI(tdp)->i_uid)); if (error) { -vput(tdp); +if (dp->i_number == foundino) + vrele(tdp); +else + vput(tdp); return (EPERM); } } - if (dp->i_number == foundino) { - vref(vdp); - *vpp = vdp; - return (0); - } *vpp = tdp; return (0); } Index: src/sys/ufs/ufs/ufs_lookup.c diff -u src/sys/ufs/ufs/ufs_lookup.c:1.112 src/sys/ufs/ufs/ufs_lookup.c:1.113 --- src/sys/ufs/ufs/ufs_lookup.c:1.112 Tue Mar 13 18:41:14 2012 +++ src/sys/ufs/ufs/ufs_lookup.c Fri Mar 16 08:39:54 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ufs_lookup.c,v 1.112 2012/03/13 18:41:14 elad Exp $ */ +/* $NetBSD: ufs_lookup.c,v 1.113 2012/03/16 08:39:54 hannken Exp $ */ /* * Copyright (c) 1989, 1993 @@ -37,7 +37,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ufs_lookup.c,v 1.112 2012/03/13 18:41:14 elad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ufs_lookup.c,v 1.113 2012/03/16 08:39:54 hannken Exp $"); #ifdef _KERNEL_OPT #include "opt_ffs.h" @@ -532,19 +532,27 @@ found: results->ulr_count = 0; else results->ulr_count = results->ulr_offset - prevoff; - if (flags & ISDOTDOT) - VOP_UNLOCK(vdp); /* race to get the inode */ - error = VFS_VGET(vdp->v_mount, foundino, &tdp); - if (flags & ISDOTDOT) - vn_lock(vdp, LK_EXCLUSIVE | LK_RETRY); - if (error) - goto out; + if (dp->i_number == foundino) { + vref(vdp); + tdp = vdp; + } else { + if (flags & ISDOTDOT) +VOP_UNLOCK(vdp); /* race to get the inode */ + error = VFS_VGET(vdp->v_mount, foundino, &tdp); + if (flags & ISDOTDOT) +vn_lock(vdp, LK_EXCLUSIVE | LK_RETRY); + if (error) +goto out; + } /* * Write access to directory required to delete files. */ error = VOP_ACCESS(vdp, VWRITE, cred); if (error) { - vput(tdp); + if (dp->i_number == foundino) +vrele(tdp); + else +vput(tdp); goto out; } /* @@ -558,17 +566,14 @@ found: tdp, vdp, genfs_can_sticky(cred, dp->i_uid, VTOI(tdp)->i_uid)); if (error) { -vput(tdp); +if (dp->i_number == foundino) + vrele(tdp); +else + vput(tdp); error = EPERM; goto out; } } - if (dp->i_number == foundino) { - vref(vdp); - *vpp = vdp; - error = 0; - goto out; - } *vpp = tdp; error = 0; goto out;
CVS commit: src/tests/lib/libc/sys
Module Name:src Committed By: matt Date: Fri Mar 16 08:14:12 UTC 2012 Modified Files: src/tests/lib/libc/sys: t_listen.c Log Message: This is no longer expected to fail. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/tests/lib/libc/sys/t_listen.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/tests/lib/libc/sys/t_listen.c diff -u src/tests/lib/libc/sys/t_listen.c:1.2 src/tests/lib/libc/sys/t_listen.c:1.3 --- src/tests/lib/libc/sys/t_listen.c:1.2 Wed Mar 7 07:24:05 2012 +++ src/tests/lib/libc/sys/t_listen.c Fri Mar 16 08:14:11 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: t_listen.c,v 1.2 2012/03/07 07:24:05 jruoho Exp $ */ +/* $NetBSD: t_listen.c,v 1.3 2012/03/16 08:14:11 matt Exp $ */ /* * Copyright (c) 2007 The NetBSD Foundation, Inc. * All rights reserved. @@ -78,8 +78,6 @@ ATF_TC_BODY(listen_err, tc) * According to IEEE Std 1003.1-2008: if the socket is * already connected, the call should fail with EINVAL. */ - atf_tc_expect_fail("PR standards/46150"); - ATF_REQUIRE(connect(fdb, (struct sockaddr *)&sinb, siz) == 0); ATF_REQUIRE_ERRNO(EINVAL, listen(fdb, 1) == -1);
CVS commit: src/sys/arch/powerpc
Module Name:src Committed By: matt Date: Fri Mar 16 07:41:55 UTC 2012 Modified Files: src/sys/arch/powerpc/include: cpu.h src/sys/arch/powerpc/powerpc: powerpc_machdep.c Log Message: Add CPU_EXECPROT sysctl so that atf can enable exec permission tests for PPC Booke. To generate a diff of this commit: cvs rdiff -u -r1.89 -r1.90 src/sys/arch/powerpc/include/cpu.h cvs rdiff -u -r1.63 -r1.64 src/sys/arch/powerpc/powerpc/powerpc_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/powerpc/include/cpu.h diff -u src/sys/arch/powerpc/include/cpu.h:1.89 src/sys/arch/powerpc/include/cpu.h:1.90 --- src/sys/arch/powerpc/include/cpu.h:1.89 Tue Dec 13 11:03:52 2011 +++ src/sys/arch/powerpc/include/cpu.h Fri Mar 16 07:41:54 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.h,v 1.89 2011/12/13 11:03:52 kiyohara Exp $ */ +/* $NetBSD: cpu.h,v 1.90 2012/03/16 07:41:54 matt Exp $ */ /* * Copyright (C) 1999 Wolfgang Solfrank. @@ -444,6 +444,7 @@ void __syncicache(void *, size_t); #define CPU_POWERSAVE 8 /* int: use CPU powersave mode */ #define CPU_BOOTED_DEVICE 9 /* string: device we booted from */ #define CPU_BOOTED_KERNEL 10 /* string: kernel we booted */ -#define CPU_MAXID 11 /* number of valid machdep ids */ +#define CPU_EXECPROT 11 /* bool: PROT_EXEC works */ +#define CPU_MAXID 12 /* number of valid machdep ids */ #endif /* _POWERPC_CPU_H_ */ Index: src/sys/arch/powerpc/powerpc/powerpc_machdep.c diff -u src/sys/arch/powerpc/powerpc/powerpc_machdep.c:1.63 src/sys/arch/powerpc/powerpc/powerpc_machdep.c:1.64 --- src/sys/arch/powerpc/powerpc/powerpc_machdep.c:1.63 Sun Feb 19 21:06:24 2012 +++ src/sys/arch/powerpc/powerpc/powerpc_machdep.c Fri Mar 16 07:41:55 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: powerpc_machdep.c,v 1.63 2012/02/19 21:06:24 rmind Exp $ */ +/* $NetBSD: powerpc_machdep.c,v 1.64 2012/03/16 07:41:55 matt Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -32,7 +32,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: powerpc_machdep.c,v 1.63 2012/02/19 21:06:24 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: powerpc_machdep.c,v 1.64 2012/03/16 07:41:55 matt Exp $"); #include "opt_altivec.h" #include "opt_modular.h" @@ -248,6 +248,13 @@ SYSCTL_SETUP(sysctl_machdep_setup, "sysc NULL, cpu_altivec, NULL, 0, CTL_MACHDEP, CPU_ALTIVEC, CTL_EOL); #endif +#ifdef PPC_BOOKE + sysctl_createv(clog, 0, NULL, NULL, + CTLFLAG_PERMANENT|CTLFLAG_IMMEDIATE, + CTLTYPE_INT, "execprot", NULL, + NULL, 1, NULL, 0, + CTL_MACHDEP, CPU_EXECPROT, CTL_EOL); +#endif sysctl_createv(clog, 0, NULL, NULL, CTLFLAG_PERMANENT, CTLTYPE_STRING, "model", NULL,
CVS commit: src/sys/arch/powerpc/booke
Module Name:src Committed By: matt Date: Fri Mar 16 07:23:38 UTC 2012 Modified Files: src/sys/arch/powerpc/booke: copyin.c Log Message: Make sure to have copyinstr return ENAMETOOLONG if the string was too long. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/arch/powerpc/booke/copyin.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/powerpc/booke/copyin.c diff -u src/sys/arch/powerpc/booke/copyin.c:1.4 src/sys/arch/powerpc/booke/copyin.c:1.5 --- src/sys/arch/powerpc/booke/copyin.c:1.4 Mon Jun 20 05:20:37 2011 +++ src/sys/arch/powerpc/booke/copyin.c Fri Mar 16 07:23:38 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: copyin.c,v 1.4 2011/06/20 05:20:37 matt Exp $ */ +/* $NetBSD: copyin.c,v 1.5 2012/03/16 07:23:38 matt Exp $ */ /*- * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: copyin.c,v 1.4 2011/06/20 05:20:37 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: copyin.c,v 1.5 2012/03/16 07:23:38 matt Exp $"); #include #include @@ -314,5 +314,8 @@ copyinstr(const void *usaddr, void *kdad pcb->pcb_onfault = NULL; if (done) *done = copylen; - return 0; + /* + * If the last byte is not NUL (0), then the name is too long. + */ + return (uint8_t)data ? ENAMETOOLONG : 0; }