[Mono-bugs] [Bug 463003] New: CheckParametersNullityInVisibleMethodsRule returns false positive

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Dec 30 15:43:26 EST 2008


https://bugzilla.novell.com/show_bug.cgi?id=463003


           Summary: CheckParametersNullityInVisibleMethodsRule returns false
                    positive
           Product: Mono: Tools
           Version: SVN
          Platform: x86
        OS/Version: Linux
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Gendarme
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: tamara.roberson at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


Gendarme complains about the following code.  However, it would be invalid to
call UnpackStringArray (ptr, null).  The compiler will prevent that from
occurring (error CS1510).

Attempts to recreate this issue with a simple assembly have failed, sorry. The
code is from Muine (available in bug 462925).

Gendarme should never complain about a parameter that is an out.

PS: typo on "caller is unk[n]own".


Code:
public static IntPtr UnpackStringArray (IntPtr p, out string [] array)
{
        IntPtr ret = p;

        int len;
        ret = Database.UnpackInt (ret, out len);

        array = new string [len];

        for (int i = 0; i < len; i++)
                ret = Database.UnpackString (ret, out array [i]);

        return ret;
}


Complaint:

37. CheckParametersNullityInVisibleMethodsRule

Problem: A visible method does not check its parameter(s) for null values.
* Severity: High, Confidence: Normal
* Target:   System.IntPtr
Muine.Database::UnpackStringArray(System.IntPtr,System.String[]&)
* Location: array
* Source:  
/home/tamara/My_Stuff/Computer/Programming/muine-gendarme-cleanup/muine.gendarme.pointer-length/src/Database.cs(≈345)

Solution: Since the caller is unkown you should always verify all of your
parameters to protect yourself.
More info available at:
http://www.mono-project.com/Gendarme.Rules.Correctness#CheckParametersNullityInVisibleMethodsRule


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list