From owner-freebsd-bugs@FreeBSD.ORG Fri Mar 12 01:30:23 2004 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9B8B416A4CE for ; Fri, 12 Mar 2004 01:30:23 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 72FA643D49 for ; Fri, 12 Mar 2004 01:30:23 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i2C9UNbv030887 for ; Fri, 12 Mar 2004 01:30:23 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i2C9UNtq030886; Fri, 12 Mar 2004 01:30:23 -0800 (PST) (envelope-from gnats) Resent-Date: Fri, 12 Mar 2004 01:30:23 -0800 (PST) Resent-Message-Id: <200403120930.i2C9UNtq030886@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Morten Rodal Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CF13216A4CE for ; Fri, 12 Mar 2004 01:22:05 -0800 (PST) Received: from ray.idi.ntnu.no (ray.idi.ntnu.no [129.241.107.68]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7C82343D2F for ; Fri, 12 Mar 2004 01:22:04 -0800 (PST) (envelope-from morten@rodal.no) Received: from stud326.idi.ntnu.no (stud326.idi.ntnu.no [129.241.103.26]) by ray.idi.ntnu.no (8.12.10/8.12.10) with ESMTP id i2C9M0el013246 for ; Fri, 12 Mar 2004 10:22:01 +0100 (MET) Received: (from morten@localhost) by stud326.idi.ntnu.no (8.12.11/8.12.11/Submit) id i2C9M0jC002510; Fri, 12 Mar 2004 10:22:00 +0100 (CET) (envelope-from morten) Message-Id: <200403120922.i2C9M0jC002510@stud326.idi.ntnu.no> Date: Fri, 12 Mar 2004 10:22:00 +0100 (CET) From: Morten Rodal To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: bin/64150: [PATCH] ls(1) coredumps when started via execve(2) with no argv. X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Morten Rodal List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Mar 2004 09:30:23 -0000 >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@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 #include int main(int argc, char **argv) { execve("/bin/ls", NULL, NULL); return (1); } >Fix: --- ls.c.orig Fri Mar 12 10:19:08 2004 +++ ls.c Fri Mar 12 10:21:08 2004 @@ -430,7 +430,7 @@ else printfcn = printcol; - if (argc) + if (argc >= 1) traverse(argc, argv, fts_options); else traverse(1, dotav, fts_options); >Release-Note: >Audit-Trail: >Unformatted: