NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/45423: the actual error from pipe_create() should be used instead of being rewritten



>Number:         45423
>Category:       kern
>Synopsis:       the actual error from pipe_create() should be used instead of 
>being rewritten
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Oct 04 18:50:00 +0000 2011
>Originator:     Greg A. Woods
>Release:        NetBSD-current 2011/10/04
>Organization:
Planix, Inc.; Kelowna, BC; Canada
>Environment:
System: NetBSD
Architecture: all
Machine: all
>Description:

        One should use the actual error result from an internal helper
        function that carefully returns proper error codes instead of
        rewriting any error to some (other) hard-coded value.

        In this case there is currently only one possible error that can
        be returned by pipe_create() and it matches what is returned by
        its caller, but I think it's important not to unilaterally
        ignore future possible errors by unilaterally rewriting the
        error

>How-To-Repeat:

>Fix:

Index: sys/kern/sys_pipe.c
===================================================================
RCS file: /cvs/master/m-NetBSD/main/src/sys/kern/sys_pipe.c,v
retrieving revision 1.132
diff -u -r1.132 sys_pipe.c
--- sys/kern/sys_pipe.c 15 Jul 2011 14:50:19 -0000      1.132
+++ sys/kern/sys_pipe.c 4 Oct 2011 18:02:42 -0000
@@ -255,9 +255,8 @@
                return EINVAL;
        p = curproc;
        rpipe = wpipe = NULL;
-       if (pipe_create(&rpipe, pipe_rd_cache) ||
-           pipe_create(&wpipe, pipe_wr_cache)) {
-               error = ENOMEM;
+       if ((error = pipe_create(&rpipe, pipe_rd_cache)) ||
+           (error = pipe_create(&wpipe, pipe_wr_cache))) {
                goto free2;
        }
        rpipe->pipe_lock = mutex_obj_alloc(MUTEX_DEFAULT, IPL_NONE);



Home | Main Index | Thread Index | Old Index