From 3d725db397a5d77e8c5f88d315c72473415cc23e Mon Sep 17 00:00:00 2001 From: uebayasi Date: Mon, 14 Apr 2014 13:14:38 +0000 Subject: [PATCH] copyinargs: Redo previous; if given fakearg is longer than arg buf (which is very unlikely to happen), there's no point to continue with truncated arg. Just give up and return E2BIG. --- sys/kern/kern_exec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index 6363b9efe609..eab6f2531f23 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -1,4 +1,4 @@ -/* $NetBSD: kern_exec.c,v 1.394 2014/04/14 05:39:19 uebayasi Exp $ */ +/* $NetBSD: kern_exec.c,v 1.395 2014/04/14 13:14:38 uebayasi Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -59,7 +59,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.394 2014/04/14 05:39:19 uebayasi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.395 2014/04/14 13:14:38 uebayasi Exp $"); #include "opt_exec.h" #include "opt_execfmt.h" @@ -1423,7 +1423,7 @@ copyinargs(struct execve_data * restrict data, char * const *args, if (len < maxlen) len++; else - len = maxlen; + return E2BIG; ktrexecarg(tmpfap->fa_arg, len - 1); dp += len;