From owner-freebsd-bugs@FreeBSD.ORG Fri Feb 5 05:50:02 2010 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 665BE1065676 for ; Fri, 5 Feb 2010 05:50:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 2D2608FC24 for ; Fri, 5 Feb 2010 05:50:02 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id o155o2VM028547 for ; Fri, 5 Feb 2010 05:50:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id o155o2P3028546; Fri, 5 Feb 2010 05:50:02 GMT (envelope-from gnats) Resent-Date: Fri, 5 Feb 2010 05:50:02 GMT Resent-Message-Id: <201002050550.o155o2P3028546@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, Eugene Grosbein Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7955F106566C for ; Fri, 5 Feb 2010 05:42:38 +0000 (UTC) (envelope-from eugen@eg.sd.rdtc.ru) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [62.231.161.221]) by mx1.freebsd.org (Postfix) with ESMTP id D05778FC17 for ; Fri, 5 Feb 2010 05:42:37 +0000 (UTC) Received: from eg.sd.rdtc.ru (localhost [127.0.0.1]) by eg.sd.rdtc.ru (8.14.3/8.14.3) with ESMTP id o155gY3w000372 for ; Fri, 5 Feb 2010 12:42:34 +0700 (KRAT) (envelope-from eugen@eg.sd.rdtc.ru) Received: (from eugen@localhost) by eg.sd.rdtc.ru (8.14.3/8.14.3/Submit) id o155gYe9000371; Fri, 5 Feb 2010 12:42:34 +0700 (KRAT) (envelope-from eugen) Message-Id: <201002050542.o155gYe9000371@eg.sd.rdtc.ru> Date: Fri, 5 Feb 2010 12:42:34 +0700 (KRAT) From: Eugene Grosbein To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: kern/143568: ktrace is limited with other user's "filesize" limit X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Feb 2010 05:50:02 -0000 >Number: 143568 >Category: kern >Synopsis: ktrace is limited with other user's "filesize" limit >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 Feb 05 05:50:01 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Eugene Grosbein >Release: FreeBSD 8.0-STABLE i386 >Organization: RDTC JSC >Environment: System: FreeBSD eg.sd.rdtc.ru 8.0-STABLE FreeBSD 8.0-STABLE #6: Mon Jan 11 15:04:08 KRAT 2010 root@eg.sd.rdtc.ru:/usr/local/obj/usr/local/src/sys/EG i386 >Description: ktrace stops writing trace file if "filesize" limit is enabled by traced process. >How-To-Repeat: Compile this test code: cc -o example example.c It needs two command line arguments: filesize limit (in bytes) and some user's uid (f.e., 65534 for "nobody"). #include #include #include #include int main(int argc, char *argv[]) { struct rlimit rl; if (argc > 2) { rl.rlim_cur = atol(argv[1]); setrlimit(RLIMIT_FSIZE, &rl); seteuid(atol(argv[2])); while(1) usleep(10); } return 0; } Use kernel with "options KTRACE" and run the example as root, it breaks as soon as trace file size hits limit: # ktrace ./example 100000 65535 Filesize limit exceeded: 25 Note that traced code does not write anything, it runs as another user and sets limit for itself only and not for ktrace. This makes it difficult to debug real services using "filesize" limit like stock ftpd serving users with limited login class assigned. >Fix: Unknown >Release-Note: >Audit-Trail: >Unformatted: