From owner-freebsd-bugs Mon Dec 9 3:40: 7 2002 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 C264737B401 for ; Mon, 9 Dec 2002 03:40:05 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1641043EC5 for ; Mon, 9 Dec 2002 03:40:05 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.6/8.12.6) with ESMTP id gB9Be4x3042877 for ; Mon, 9 Dec 2002 03:40:04 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.6/8.12.6/Submit) id gB9Be4Zq042876; Mon, 9 Dec 2002 03:40:04 -0800 (PST) Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 38A0D37B401 for ; Mon, 9 Dec 2002 03:39:09 -0800 (PST) Received: from vbook.express.ru (asplinux.ru [195.133.213.194]) by mx1.FreeBSD.org (Postfix) with ESMTP id AED4E43ED1 for ; Mon, 9 Dec 2002 03:39:07 -0800 (PST) (envelope-from vova@sw.ru) Received: from vova by vbook.express.ru with local (Exim 4.10) id 18LMFe-0001eC-00 for FreeBSD-gnats-submit@freebsd.org; Mon, 09 Dec 2002 14:39:06 +0300 Message-Id: Date: Mon, 09 Dec 2002 14:39:06 +0300 From: "Vladimir B.Grebenschikov" Reply-To: "Vladimir B.Grebenschikov" To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: kern/46122: msgget() can return negative value after extensive use Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Number: 46122 >Category: kern >Synopsis: msgget() can return negative value after extensive use >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: Mon Dec 09 03:40:04 PST 2002 >Closed-Date: >Last-Modified: >Originator: Vladimir B. Grebenschikov >Release: FreeBSD 5.0-RC i386 >Organization: SWsoft >Environment: System: FreeBSD vbook.express.ru 5.0-RC FreeBSD 5.0-RC #23: Sun Dec 8 14:54:44 MSK 2002 root@vbook.express.ru:/usr/local/src/sys/i386/compile/VBOOK i386 This bug also appears in 4-STABLE branch >Description: msgget() function according to manpage should return positive identifier, but after some hours of extencive use kernel counter overflowed and negative number is returned. >How-To-Repeat: I have use perl test suite. perl lib/IPC/SysV.t >Fix: Below kernel patch to fix problem Index: kern/sysv_msg.c =================================================================== RCS file: /ext/vcvs/src/sys/kern/sysv_msg.c,v retrieving revision 1.23.2.3.10000.7 diff -u -r1.23.2.3.10000.7 sysv_msg.c --- kern/sysv_msg.c 2 Dec 2002 16:44:36 -0000 1.23.2.3.10000.7 +++ kern/sysv_msg.c 9 Dec 2002 10:24:45 -0000 @@ -440,7 +440,7 @@ msqptr->msg_perm.gid = cred->cr_gid; msqptr->msg_perm.mode = (msgflg & 0777); /* Make sure that the returned msqid is unique */ - msqptr->msg_perm.seq++; + msqptr->msg_perm.seq = (msqptr->msg_perm.seq+1) & 0x7fff; msqptr->msg_first = NULL; msqptr->msg_last = NULL; msqptr->msg_cbytes = 0; >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message