bin/64150: [PATCH] ls(1) coredumps when started via execve(2) with no argv.

Ruslan Ermilov ru at freebsd.org
Fri Mar 12 02:50:22 PST 2004


The following reply was made to PR bin/64150; it has been noted by GNATS.

From: Ruslan Ermilov <ru at freebsd.org>
To: Morten Rodal <morten at rodal.no>
Cc: FreeBSD-gnats-submit at freebsd.org
Subject: Re: bin/64150: [PATCH] ls(1) coredumps when started via execve(2) with no argv.
Date: Fri, 12 Mar 2004 12:49:14 +0200

 On Fri, Mar 12, 2004 at 10:22:00AM +0100, Morten Rodal wrote:
 > 
 > >Number:         64150
 > >Category:       bin
 > >Synopsis:       [PATCH] ls(1) coredumps when started via execve(2) with no argv.
 > >Confidential:   no
 > >Severity:       non-critical
 > >Priority:       low
 > >Responsible:    freebsd-bugs
 > >State:          open
 > >Quarter:        
 > >Keywords:       
 > >Date-Required:
 > >Class:          sw-bug
 > >Submitter-Id:   current-users
 > >Arrival-Date:   Fri Mar 12 01:30:23 PST 2004
 > >Closed-Date:
 > >Last-Modified:
 > >Originator:     Morten Rodal
 > >Release:        FreeBSD 5.2-CURRENT i386
 > >Organization:
 > >Environment:
 > System: FreeBSD stud326.idi.ntnu.no 5.2-CURRENT FreeBSD 5.2-CURRENT #2: Mon Mar 1 02:38:57 CET 2004 root at stud326.idi.ntnu.no:/usr/obj/usr/src/sys/stud326 i386
 > 
 > 
 > >Description:
 > ls(1) calls the fts(3) functions for traversing a file hierarchy.  If ls(1) is
 > executed via execve(2) system call with a NULL argv and envp it will make
 > the fts(3) functions core dump with a SIGBUS.
 > 
 > If execve(2) is executed with a NULL (I am not sure this is legal?) argv, the
 > executed program will have an argc value of -1.
 > 
 > >How-To-Repeat:
 > #include <stdio.h>
 > #include <unistd.h>
 > 
 > int main(int argc, char **argv) {
 > 	execve("/bin/ls", NULL, NULL);
 > 
 > 	return (1);
 > }
 
 The execve(2) manpage says:
 
 : The argument argv is a pointer to a null-terminated array of character
 : pointers to null-terminated character strings.  These strings construct
 : the argument list to be made available to the new process.  At least one
 : argument must be present in the array; by custom, the first element
 : should be the name of the executed program (for example, the last compo-
 : nent of path).
 
 
 Cheers,
 -- 
 Ruslan Ermilov
 FreeBSD committer
 ru at FreeBSD.org


More information about the freebsd-bugs mailing list