[Mono-bugs] [Bug 622972] New: CheckParametersNullityInVisibleMethodsRule does not validate generic methods
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Fri Jul 16 08:43:35 EDT 2010
http://bugzilla.novell.com/show_bug.cgi?id=622972
http://bugzilla.novell.com/show_bug.cgi?id=622972#c0
Summary: CheckParametersNullityInVisibleMethodsRule does not
validate generic methods
Classification: Mono
Product: Mono: Tools
Version: unspecified
Platform: Other
OS/Version: Other
Status: NEW
Severity: Normal
Priority: P5 - None
Component: Gendarme
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: tobias.schoenit at schaeffler.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
Using this code that checks the nullity the report result is not correct:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MonoGendarmeSamples
{
using System.IO;
public class GenericClass
{
public bool Test1<T>(T fs)
where T:Stream
{
return fs.CanRead;
}
public bool Test2<T>(T fs)
where T : Stream
{
if (fs == null)
{
return false;
}
return fs.CanRead;
}
public bool Test2Equals<T>(T fs)
where T : Stream
{
if (Equals(fs, null))
{
return false;
}
return fs.CanRead;
}
public bool Test2EqualsDefault<T>(T fs)
where T : Stream
{
if (Equals(fs, default(Stream)))
{
return false;
}
return fs.CanRead;
}
public bool Test3<T>(T fs)
where T : Stream
{
if (fs != null)
{
return fs.CanRead;
}
return false;
}
public bool Test3Equals<T>(T fs)
where T : Stream
{
if (!Equals(fs, null))
{
return fs.CanRead;
}
return false;
}
public bool Test3EqualsDefault<T>(T fs)
where T : Stream
{
if (!Equals(fs, default(Stream)))
{
return fs.CanRead;
}
return false;
}
}
}
report:
Gendarme Report
Produced on 16.07.2010 12:41:53 UTC.
Table of contents
1. Summary
1.1. List of assemblies searched
1.2. List of rules used
2. Reported defects
2.1. CheckParametersNullityInVisibleMethodsRule
Summary
Gendarme found 7 potential defects using 1 rules.
List of assemblies analyzed [show]
*
C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\bin\Debug\MonoGendarmeSamples.dll:
7 defects
List of rules used [show]
Assembly:
* None
Type:
* None
Method:
* Gendarme.Rules.Correctness.CheckParametersNullityInVisibleMethodsRule : 7
defects
Reported Defects
1. CheckParametersNullityInVisibleMethodsRule [hide]
Problem:
A visible method does not check its parameter(s) for null values.
Solution:
Since the caller is unknown you should always verify all of your parameters to
protect yourself.
7 defect(s) found:
Target: System.Boolean MonoGendarmeSamples.GenericClass::Test1(T)
Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null
Severity: High Confidence: Normal
Location: fs
Source:
C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈13)
Go to CheckParametersNullityInVisibleMethodsRule description
Target: System.Boolean MonoGendarmeSamples.GenericClass::Test2(T)
Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null
Severity: High Confidence: Normal
Location: fs
Source:
C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈19)
Go to CheckParametersNullityInVisibleMethodsRule description
Target: System.Boolean MonoGendarmeSamples.GenericClass::Test2Equals(T)
Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null
Severity: High Confidence: Normal
Location: fs
Source:
C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈30)
Go to CheckParametersNullityInVisibleMethodsRule description
Target: System.Boolean MonoGendarmeSamples.GenericClass::Test2EqualsDefault(T)
Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null
Severity: High Confidence: Normal
Location: fs
Source:
C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈41)
Go to CheckParametersNullityInVisibleMethodsRule description
Target: System.Boolean MonoGendarmeSamples.GenericClass::Test3(T)
Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null
Severity: High Confidence: Normal
Location: fs
Source:
C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈52)
Go to CheckParametersNullityInVisibleMethodsRule description
Target: System.Boolean MonoGendarmeSamples.GenericClass::Test3Equals(T)
Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null
Severity: High Confidence: Normal
Location: fs
Source:
C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈63)
Go to CheckParametersNullityInVisibleMethodsRule description
Target: System.Boolean MonoGendarmeSamples.GenericClass::Test3EqualsDefault(T)
Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null
Severity: High Confidence: Normal
Location: fs
Source:
C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈74)
Go to CheckParametersNullityInVisibleMethodsRule description
--
Configure bugmail: http://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