Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Nov 2009 06:51:31 GMT
From:      Kouhei Ueno <k.ueno@fillot.jp>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/140441: order of arguments for mtx_init is incorrect in uipc_syscalls.c
Message-ID:  <200911100651.nAA6pVkE037410@www.freebsd.org>
Resent-Message-ID: <200911100700.nAA70Bjp018967@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         140441
>Category:       kern
>Synopsis:       order of arguments for mtx_init is incorrect in uipc_syscalls.c
>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:   Tue Nov 10 07:00:10 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Kouhei Ueno
>Release:        FreeBSD 8.0-RC1 i386
>Organization:
Fillot Inc.
>Environment:
FreeBSD burmese-bsddev.home.nyaxtstep.com 8.0-RC1 FreeBSD 8.0-RC1 #0: Thu Oct 15 20:36:40 JST 2009     root@burmese-bsddev.home.nyaxtstep.com:/usr/src/sys/i386/compile/IZNA  i386

>Description:
In sendfile implementation, kern_sendfile, mtx_init(9) is called with its arguments in incorrect order. The third argument should be type, and the fourth argument should be opts. These are swapped in the implementation.

Fortunately, MTX_DEF is defined to be zero (which would equal NULL), so the original code will not cause any problem. But still it is very confusing to read.
>How-To-Repeat:
don't know
>Fix:
patch to uipc_syscalls.c

--- uipc_syscalls.c     2009-08-03 17:13:06.000000000 +0900
+++ uipc_syscalls.c.fix 2009-11-10 15:17:18.000000000 +0900
@@ -1885,7 +1885,7 @@
        if (uap->flags & SF_SYNC) {
                sfs = malloc(sizeof *sfs, M_TEMP, M_WAITOK);
                memset(sfs, 0, sizeof *sfs);
-               mtx_init(&sfs->mtx, "sendfile", MTX_DEF, 0);
+               mtx_init(&sfs->mtx, "sendfile", NULL, MTX_DEF);
                cv_init(&sfs->cv, "sendfile");
        }



>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911100651.nAA6pVkE037410>