From andriko.b@gmail.com  Mon May 30 13:39:56 2005
Return-Path: <andriko.b@gmail.com>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id E4D2C16A41C
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 30 May 2005 13:39:56 +0000 (GMT)
	(envelope-from andriko.b@gmail.com)
Received: from zproxy.gmail.com (zproxy.gmail.com [64.233.162.200])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 9763143D1F
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 30 May 2005 13:39:56 +0000 (GMT)
	(envelope-from andriko.b@gmail.com)
Received: by zproxy.gmail.com with SMTP id 40so2290214nzk
        for <FreeBSD-gnats-submit@freebsd.org>; Mon, 30 May 2005 06:39:55 -0700 (PDT)
Received: by 10.36.47.13 with SMTP id u13mr1487314nzu;
        Mon, 30 May 2005 06:39:55 -0700 (PDT)
Received: by 10.36.42.16 with HTTP; Mon, 30 May 2005 06:39:55 -0700 (PDT)
Message-Id: <21be381705053006396b63e314@mail.gmail.com>
Date: Mon, 30 May 2005 16:39:55 +0300
From: Andrew Bliznak <andriko.b@gmail.com>
Reply-To: Andrew Bliznak <andriko.b@gmail.com>
To: FreeBSD-gnats-submit@freebsd.org
Subject: linux_execve return wrong value (i386)

>Number:         81670
>Category:       kern
>Synopsis:       [patch] linux_execve return wrong value (i386)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    emulation
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon May 30 13:40:01 GMT 2005
>Closed-Date:    Mon Aug 01 17:38:29 GMT 2005
>Last-Modified:  Mon Aug 01 17:38:29 GMT 2005
>Originator:     Andrew Bliznak
>Release:        FreeBSD 6.0-CURRENT i386
>Organization:
Andrew Bliznak
>Environment:
System: FreeBSD pyvo.ort 6.0-CURRENT FreeBSD 6.0-CURRENT #18: Mon May
30 14:28:20 EEST 2005
andrew@pyvo.ort:/usr/home/andrew/C/obj/usr/home/andrew/C/src/sys/GENERIC
i386
>Description:
Return value from linux_execve syscall now lost due following changes
in rev. 1.46 src/sys/i386/linux/linux_machdep.c, and linux programs
fail when use execvp(3) and executed binary not in first path elemen
of $PATH :
[ snip ]
-       bsd.fname = args->path;
-       bsd.argv = args->argp;
-       bsd.envv = args->envp;
-       return (execve(td, &bsd));
+       error = exec_copyin_args(&eargs, newpath, UIO_SYSSPACE,
+           args->argp, args->envp);
+       free(newpath, M_TEMP);
+       if (error == 0)
+               kern_execve(td, &eargs, NULL);
+       exec_free_args(&eargs);
+       return (error);
 }
[ ...]

>How-To-Repeat:
Prepped some garbage to $PATH and try to run various linux progs. (tar make=
 ...)

>Fix:
I'm use following patch locally :

Index: sys/i386/linux/linux_machdep.c
=====================================================================
RCS file: /home/ncvs/src/sys/i386/linux/linux_machdep.c,v
retrieving revision 1.48
diff -u -u -r1.48 linux_machdep.c
--- sys/i386/linux/linux_machdep.c      3 Mar 2005 16:57:55 -0000       1.4=
8
+++ sys/i386/linux/linux_machdep.c      30 May 2005 12:09:42 -0000
@@ -121,7 +121,7 @@
            args->argp, args->envp);
        free(newpath, M_TEMP);
        if (error == 0)
-               kern_execve(td, &eargs, NULL);
+               error = kern_execve(td, &eargs, NULL);
        exec_free_args(&eargs);
        return (error);
 }
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: gnats-admin->freebsd-bugs 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Wed Jun 1 07:32:49 GMT 2005 
Responsible-Changed-Why:  
Attemmpt to reformat and rescue this PR from the 'pending' category. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=81670 
Responsible-Changed-From-To: freebsd-bugs->freebsd-emulation 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Sat Jul 23 01:53:45 GMT 2005 
Responsible-Changed-Why:  
Bug in the emulation code. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=81670 
Responsible-Changed-From-To: freebsd-emulation->emulation 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Mon Jul 25 20:21:28 GMT 2005 
Responsible-Changed-Why:  
Canonicalize assignment. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=81670 
State-Changed-From-To: open->closed 
State-Changed-By: sobomax 
State-Changed-When: Mon Aug 1 17:38:12 GMT 2005 
State-Changed-Why:  
Fix committed, thank you very much for submission! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=81670 
>Unformatted:
